ReactOS 0.4.17-dev-934-g091855f
vkd3d_shader.h
Go to the documentation of this file.
1/*
2 * Copyright 2017-2019 Józef Kucia for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __VKD3D_SHADER_H
20#define __VKD3D_SHADER_H
21
22#include <stdbool.h>
23#include <stdint.h>
24#include <stddef.h>
25#include <vkd3d_types.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif /* __cplusplus */
30
44{
60
61 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
62};
63
66{
79
115
116 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_STRUCTURE_TYPE),
117};
118
126{
131
133};
134
140{
148
150};
151
153{
166
167 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_FORMATTING_FLAGS),
168};
169
172{
175
177};
178
181{
205
207};
208
215{
222
224};
225
228{
246
247 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLAGS),
248};
249
256{
260
261 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_PARSE_DXBC_FLAGS),
262};
263
265{
361
362 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_NAME),
363};
364
371{
378 unsigned int value;
379};
380
383{
396
399
400 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_VISIBILITY),
401};
402
405{
413 const void *code;
415 size_t size;
416};
417
420{
441
442 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_TYPE),
443};
444
450{
455 unsigned int set;
457 unsigned int binding;
463 unsigned int count;
464};
465
467{
470
471 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_BINDING_FLAG),
472};
473
479{
495
496 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_PARAMETER_TYPE),
497};
498
504{
517
518 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_PARAMETER_DATA_TYPE),
519};
520
526{
737
738 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_PARAMETER_NAME),
739};
740
746{
747 union
748 {
760 float f32;
761 } u;
762};
763
771{
772 union
773 {
783 float f32;
790 float f32_vec4[4];
793 } u;
794};
795
801{
810};
811
817{
822 unsigned int set;
824 unsigned int binding;
827};
828
842{
846 union
847 {
850 } u;
851};
852
871{
881 union
882 {
900 } u;
901};
902
913{
920};
921
938{
945 unsigned int register_space;
954 unsigned int register_index;
958 unsigned int flags;
959
962};
963
964#define VKD3D_SHADER_DUMMY_SAMPLER_INDEX ~0u
965
973{
978 unsigned int resource_space;
980 unsigned int resource_index;
985 unsigned int sampler_space;
987 unsigned int sampler_index;
991 unsigned int flags;
992
995};
996
1003{
1008 unsigned int register_space;
1010 unsigned int register_index;
1013
1016 unsigned int offset;
1017};
1018
1026{
1031 unsigned int register_space;
1033 unsigned int register_index;
1036
1038 unsigned int offset;
1040 unsigned int size;
1041};
1042
1060{
1064 const void *next;
1065
1069 unsigned int binding_count;
1070
1075
1080
1084 unsigned int uav_counter_count;
1085};
1086
1088{
1089 unsigned int stream_index;
1090 const char *semantic_name;
1091 unsigned int semantic_index;
1095};
1096
1097/* Extends vkd3d_shader_interface_info. */
1099{
1101 const void *next;
1102
1104 unsigned int element_count;
1105 const unsigned int *buffer_strides;
1107};
1108
1110{
1111 unsigned int static_offset;
1113};
1114
1127{
1131 const void *next;
1132
1141
1184
1191};
1192
1195{
1223
1224 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SOURCE_TYPE),
1225};
1226
1229{
1268
1269 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TARGET_TYPE),
1270};
1271
1277{
1288
1289 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_LOG_LEVEL),
1290};
1291
1296{
1304 const void *next;
1305
1308
1313
1326 unsigned int option_count;
1327
1334 const char *source_name;
1335};
1336
1338{
1344
1345 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SPIRV_ENVIRONMENT),
1346};
1347
1349{
1360
1361 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SPIRV_EXTENSION),
1362};
1363
1364/* Extends vkd3d_shader_compile_info. */
1366{
1368 const void *next;
1369
1370 const char *entry_point; /* "main" if NULL. */
1371
1373
1375 unsigned int extension_count;
1376
1378 unsigned int parameter_count;
1379
1381 const unsigned int *output_swizzles;
1383};
1384
1386{
1391
1392 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TESSELLATOR_OUTPUT_PRIMITIVE),
1393};
1394
1396{
1401
1402 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TESSELLATOR_PARTITIONING),
1403};
1404
1405/* Extends vkd3d_shader_spirv_target_info. */
1407{
1409 const void *next;
1410
1413};
1414
1420{
1426 const char *name;
1432 const char *value;
1433};
1434
1464 const char *parent_data, void *context, struct vkd3d_shader_code *out);
1480
1493{
1497 const void *next;
1498
1509 unsigned int macro_count;
1510
1539};
1540
1553{
1557 const void *next;
1558
1565 const char *entry_point;
1571 const char *profile;
1572};
1573
1574/* root signature 1.0 */
1576{
1613
1614 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_FILTER),
1615};
1616
1618{
1624
1625 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TEXTURE_ADDRESS_MODE),
1626};
1627
1629{
1638
1639 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPARISON_FUNC),
1640};
1641
1643{
1647
1648 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_STATIC_BORDER_COLOUR),
1649};
1650
1652{
1658 unsigned int max_anisotropy;
1661 float min_lod;
1662 float max_lod;
1663 unsigned int shader_register;
1664 unsigned int register_space;
1666};
1667
1669{
1671 unsigned int descriptor_count;
1673 unsigned int register_space;
1675};
1676
1678{
1681};
1682
1684{
1685 unsigned int shader_register;
1686 unsigned int register_space;
1687 unsigned int value_count;
1688};
1689
1691{
1692 unsigned int shader_register;
1693 unsigned int register_space;
1694};
1695
1697{
1703
1704 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_ROOT_PARAMETER_TYPE),
1705};
1706
1708{
1710 union
1711 {
1715 } u;
1717};
1718
1720{
1729
1730 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_ROOT_SIGNATURE_FLAGS),
1731};
1732
1734{
1735 unsigned int parameter_count;
1740};
1741
1742/* root signature 1.1 */
1744{
1749
1750 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_ROOT_DESCRIPTOR_FLAGS),
1751};
1752
1754{
1762
1763 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_RANGE_FLAGS),
1764};
1765
1767{
1769 unsigned int descriptor_count;
1771 unsigned int register_space;
1774};
1775
1777{
1780};
1781
1783{
1784 unsigned int shader_register;
1785 unsigned int register_space;
1787};
1788
1790{
1792 union
1793 {
1797 } u;
1799};
1800
1802{
1803 unsigned int parameter_count;
1808};
1809
1811{
1814
1815 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_ROOT_SIGNATURE_VERSION),
1816};
1817
1819{
1821 union
1822 {
1825 } u;
1826};
1827
1833{
1859
1860 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_RESOURCE_TYPE),
1861};
1862
1868{
1889
1890 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_RESOURCE_DATA_TYPE),
1891};
1892
1898{
1913
1914 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_INFO_FLAG),
1915};
1916
1922{
1929 unsigned int register_space;
1931 unsigned int register_index;
1940 unsigned int flags;
1945 unsigned int count;
1946};
1947
1982{
1988 const void *next;
1989
1993 unsigned int descriptor_count;
1994};
1995
2003{
2004 unsigned int resource_space;
2005 unsigned int resource_index;
2006 unsigned int sampler_space;
2007 unsigned int sampler_index;
2008};
2009
2031{
2035 const void *next;
2036
2041};
2042
2048{
2063
2064 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPONENT_TYPE),
2065};
2066
2069{
2116
2117 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SYSVAL_SEMANTIC),
2118};
2119
2125{
2135
2136 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_MINIMUM_PRECISION),
2137};
2138
2143{
2145 const char *semantic_name;
2147 unsigned int semantic_index;
2152 unsigned int stream_index;
2161 unsigned int register_index;
2163 unsigned int mask;
2170 unsigned int used_mask;
2173};
2174
2183{
2187 unsigned int element_count;
2188};
2189
2192{
2197
2198 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SWIZZLE_COMPONENT),
2199};
2200
2207{
2212};
2213
2220{
2232 unsigned int version;
2234 size_t size;
2239};
2240
2245#define VKD3D_SHADER_SWIZZLE_MASK (0xffu)
2247#define VKD3D_SHADER_SWIZZLE_SHIFT(idx) (8u * (idx))
2248
2258#define VKD3D_SHADER_SWIZZLE(x, y, z, w) \
2259 (VKD3D_SHADER_SWIZZLE_ ## x << VKD3D_SHADER_SWIZZLE_SHIFT(0) \
2260 | VKD3D_SHADER_SWIZZLE_ ## y << VKD3D_SHADER_SWIZZLE_SHIFT(1) \
2261 | VKD3D_SHADER_SWIZZLE_ ## z << VKD3D_SHADER_SWIZZLE_SHIFT(2) \
2262 | VKD3D_SHADER_SWIZZLE_ ## w << VKD3D_SHADER_SWIZZLE_SHIFT(3))
2263
2265#define VKD3D_SHADER_NO_SWIZZLE VKD3D_SHADER_SWIZZLE(X, Y, Z, W)
2266
2271{
2276}
2277
2320{
2324 const void *next;
2325
2328
2331
2334};
2335
2343{
2354 unsigned int input_mask;
2355};
2356
2382{
2386 const void *next;
2387
2401 unsigned int varying_count;
2402};
2403
2430{
2434 const void *next;
2435
2439 unsigned int parameter_count;
2440};
2441
2442#ifdef LIBVKD3D_SHADER_SOURCE
2443# define VKD3D_SHADER_API VKD3D_EXPORT
2444#else
2445# define VKD3D_SHADER_API VKD3D_IMPORT
2446#endif
2447
2448#ifndef VKD3D_SHADER_NO_PROTOTYPES
2449
2461VKD3D_SHADER_API const char *vkd3d_shader_get_version(unsigned int *major, unsigned int *minor);
2493 enum vkd3d_shader_source_type source_type, unsigned int *count);
2494
2562 struct vkd3d_shader_code *out, char **messages);
2581
2618 struct vkd3d_shader_versioned_root_signature_desc *root_signature, char **messages);
2630 struct vkd3d_shader_versioned_root_signature_desc *root_signature);
2631
2661 const struct vkd3d_shader_versioned_root_signature_desc *root_signature,
2662 struct vkd3d_shader_code *dxbc, char **messages);
2685
2742VKD3D_SHADER_API int vkd3d_shader_scan(const struct vkd3d_shader_compile_info *compile_info, char **messages);
2753 struct vkd3d_shader_scan_descriptor_info *scan_descriptor_info);
2754
2794 struct vkd3d_shader_signature *signature, char **messages);
2815 const struct vkd3d_shader_signature *signature, const char *semantic_name,
2816 unsigned int semantic_index, unsigned int stream_index);
2827
2828/* 1.3 */
2829
2864 struct vkd3d_shader_code *out, char **messages);
2865
2877
2890
2922
2953VKD3D_SHADER_API int vkd3d_shader_serialize_dxbc(size_t section_count,
2954 const struct vkd3d_shader_dxbc_section_desc *sections, struct vkd3d_shader_code *dxbc, char **messages);
2955
2968
2995 const struct vkd3d_shader_signature *input_signature,
2996 unsigned int *count, struct vkd3d_shader_varying_map *varyings);
2997
3012
3013#endif /* VKD3D_SHADER_NO_PROTOTYPES */
3014
3016typedef const char *(*PFN_vkd3d_shader_get_version)(unsigned int *major, unsigned int *minor);
3018typedef const enum vkd3d_shader_source_type *(*PFN_vkd3d_shader_get_supported_source_types)(unsigned int *count);
3020typedef const enum vkd3d_shader_target_type *(*PFN_vkd3d_shader_get_supported_target_types)(
3021 enum vkd3d_shader_source_type source_type, unsigned int *count);
3022
3024typedef int (*PFN_vkd3d_shader_compile)(const struct vkd3d_shader_compile_info *compile_info,
3025 struct vkd3d_shader_code *out, char **messages);
3030
3033 struct vkd3d_shader_versioned_root_signature_desc *root_signature, char **messages);
3036
3039 const struct vkd3d_shader_versioned_root_signature_desc *root_signature,
3040 struct vkd3d_shader_code *dxbc, char **messages);
3041
3045
3047typedef int (*PFN_vkd3d_shader_scan)(const struct vkd3d_shader_compile_info *compile_info, char **messages);
3050 struct vkd3d_shader_scan_descriptor_info *scan_descriptor_info);
3051
3054 struct vkd3d_shader_signature *signature, char **messages);
3056typedef struct vkd3d_shader_signature_element * (*PFN_vkd3d_shader_find_signature_element)(
3057 const struct vkd3d_shader_signature *signature, const char *semantic_name,
3058 unsigned int semantic_index, unsigned int stream_index);
3061
3064 struct vkd3d_shader_code *out, char **messages);
3065
3068
3076 const struct vkd3d_shader_dxbc_section_desc *sections, struct vkd3d_shader_code *dxbc, char **messages);
3077
3079typedef void (*PFN_vkd3d_shader_build_varying_map)(const struct vkd3d_shader_signature *output_signature,
3080 const struct vkd3d_shader_signature *input_signature,
3081 unsigned int *count, struct vkd3d_shader_varying_map *varyings);
3084
3088
3089#ifdef __cplusplus
3090}
3091#endif /* __cplusplus */
3092
3093#endif /* __VKD3D_SHADER_H */
UINT32 uint32_t
Definition: types.h:75
static const WCHAR version[]
Definition: asmname.c:66
unsigned char uint8_t
Definition: stdint.h:33
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
#define local
Definition: zutil.h:30
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizei const GLchar *const * varyings
Definition: glext.h:6214
GLenum src
Definition: glext.h:6340
GLuint buffer
Definition: glext.h:5915
GLenum GLenum dst
Definition: glext.h:6340
GLbitfield flags
Definition: glext.h:7161
GLenum GLenum GLenum input
Definition: glext.h:9031
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
GLdouble GLdouble z
Definition: glext.h:5874
const char * filename
Definition: ioapi.h:137
static IPrintDialogCallback callback
Definition: printdlg.c:325
D3D11_SHADER_VARIABLE_DESC desc
Definition: reflection.c:1683
constants
Definition: resource.c:30
struct section sections[2]
Definition: diskspace.c:792
#define minor(rdev)
Definition: propsheet.cpp:929
#define major(rdev)
Definition: propsheet.cpp:928
Definition: inflate.c:139
Definition: http.c:7252
const void * code
Definition: vkd3d_shader.h:413
struct vkd3d_shader_descriptor_binding binding
Definition: vkd3d_shader.h:994
enum vkd3d_shader_visibility shader_visibility
Definition: vkd3d_shader.h:989
const struct vkd3d_shader_compile_option * options
enum vkd3d_shader_log_level log_level
enum vkd3d_shader_structure_type type
enum vkd3d_shader_source_type source_type
enum vkd3d_shader_target_type target_type
enum vkd3d_shader_compile_option_name name
Definition: vkd3d_shader.h:373
enum vkd3d_shader_resource_type resource_type
enum vkd3d_shader_resource_data_type resource_data_type
enum vkd3d_shader_descriptor_type type
const struct vkd3d_shader_descriptor_offset * uav_counter_offsets
enum vkd3d_shader_structure_type type
const struct vkd3d_shader_descriptor_offset * binding_offsets
enum vkd3d_shader_descriptor_range_flags flags
enum vkd3d_shader_descriptor_type range_type
enum vkd3d_shader_descriptor_type range_type
struct vkd3d_shader_dxbc_section_desc * sections
enum vkd3d_shader_structure_type type
struct vkd3d_shader_code secondary_code
unsigned int combined_sampler_count
const struct vkd3d_shader_resource_binding * bindings
const struct vkd3d_shader_push_constant_buffer * push_constant_buffers
const struct vkd3d_shader_uav_counter_binding * uav_counters
unsigned int push_constant_buffer_count
const struct vkd3d_shader_combined_resource_sampler * combined_samplers
enum vkd3d_shader_structure_type type
const char * name
const char * value
enum vkd3d_shader_parameter_type type
Definition: vkd3d_shader.h:875
struct vkd3d_shader_parameter_immediate_constant1 immediate_constant
Definition: vkd3d_shader.h:887
struct vkd3d_shader_parameter_specialization_constant specialization_constant
Definition: vkd3d_shader.h:892
enum vkd3d_shader_parameter_data_type data_type
Definition: vkd3d_shader.h:880
enum vkd3d_shader_parameter_name name
Definition: vkd3d_shader.h:873
union vkd3d_shader_parameter1::@5986 u
union vkd3d_shader_parameter_immediate_constant1::@5984 u
union vkd3d_shader_parameter_immediate_constant::@5983 u
enum vkd3d_shader_structure_type type
const struct vkd3d_shader_parameter1 * parameters
struct vkd3d_shader_parameter_immediate_constant immediate_constant
Definition: vkd3d_shader.h:848
enum vkd3d_shader_parameter_type type
Definition: vkd3d_shader.h:844
enum vkd3d_shader_parameter_name name
Definition: vkd3d_shader.h:843
union vkd3d_shader_parameter::@5985 u
enum vkd3d_shader_parameter_data_type data_type
Definition: vkd3d_shader.h:845
struct vkd3d_shader_parameter_specialization_constant specialization_constant
Definition: vkd3d_shader.h:849
enum vkd3d_shader_structure_type type
const struct vkd3d_shader_macro * macros
PFN_vkd3d_shader_open_include pfn_open_include
PFN_vkd3d_shader_close_include pfn_close_include
enum vkd3d_shader_visibility shader_visibility
struct vkd3d_shader_descriptor_binding binding
Definition: vkd3d_shader.h:961
enum vkd3d_shader_descriptor_type type
Definition: vkd3d_shader.h:940
enum vkd3d_shader_visibility shader_visibility
Definition: vkd3d_shader.h:956
enum vkd3d_shader_root_descriptor_flags flags
const struct vkd3d_shader_descriptor_range1 * descriptor_ranges
const struct vkd3d_shader_descriptor_range * descriptor_ranges
struct vkd3d_shader_root_descriptor_table1 descriptor_table
struct vkd3d_shader_root_descriptor1 descriptor
enum vkd3d_shader_root_parameter_type parameter_type
enum vkd3d_shader_visibility shader_visibility
union vkd3d_shader_root_parameter1::@5988 u
union vkd3d_shader_root_parameter::@5987 u
enum vkd3d_shader_root_parameter_type parameter_type
struct vkd3d_shader_root_descriptor descriptor
enum vkd3d_shader_visibility shader_visibility
struct vkd3d_shader_root_descriptor_table descriptor_table
enum vkd3d_shader_root_signature_flags flags
const struct vkd3d_shader_static_sampler_desc * static_samplers
const struct vkd3d_shader_root_parameter1 * parameters
const struct vkd3d_shader_root_parameter * parameters
const struct vkd3d_shader_static_sampler_desc * static_samplers
enum vkd3d_shader_root_signature_flags flags
enum vkd3d_shader_structure_type type
struct vkd3d_shader_combined_resource_sampler_info * combined_samplers
enum vkd3d_shader_structure_type type
struct vkd3d_shader_descriptor_info * descriptors
enum vkd3d_shader_structure_type type
struct vkd3d_shader_signature patch_constant
struct vkd3d_shader_signature output
enum vkd3d_shader_sysval_semantic sysval_semantic
enum vkd3d_shader_component_type component_type
enum vkd3d_shader_minimum_precision min_precision
struct vkd3d_shader_signature_element * elements
unsigned int element_count
enum vkd3d_shader_tessellator_output_primitive output_primitive
enum vkd3d_shader_structure_type type
enum vkd3d_shader_tessellator_partitioning partitioning
const struct vkd3d_shader_parameter * parameters
const unsigned int * output_swizzles
enum vkd3d_shader_spirv_environment environment
enum vkd3d_shader_structure_type type
enum vkd3d_shader_spirv_extension * extensions
enum vkd3d_shader_comparison_func comparison_func
enum vkd3d_shader_texture_address_mode address_u
enum vkd3d_shader_texture_address_mode address_v
enum vkd3d_shader_filter filter
enum vkd3d_shader_static_border_colour border_colour
enum vkd3d_shader_visibility shader_visibility
enum vkd3d_shader_texture_address_mode address_w
enum vkd3d_shader_structure_type type
const struct vkd3d_shader_transform_feedback_element * elements
enum vkd3d_shader_visibility shader_visibility
struct vkd3d_shader_descriptor_binding binding
enum vkd3d_shader_structure_type type
const struct vkd3d_shader_varying_map * varying_map
unsigned int input_register_index
unsigned int output_signature_index
struct vkd3d_shader_root_signature_desc v_1_0
enum vkd3d_shader_root_signature_version version
struct vkd3d_shader_root_signature_desc1 v_1_1
union vkd3d_shader_versioned_root_signature_desc::@5989 u
VKD3D_SHADER_API struct vkd3d_shader_signature_element * vkd3d_shader_find_signature_element(const struct vkd3d_shader_signature *signature, const char *semantic_name, unsigned int semantic_index, unsigned int stream_index)
vkd3d_shader_d3dbc_constant_register
Definition: vkd3d_shader.h:913
@ VKD3D_SHADER_D3DBC_BOOL_CONSTANT_REGISTER
Definition: vkd3d_shader.h:919
@ VKD3D_SHADER_D3DBC_FLOAT_CONSTANT_REGISTER
Definition: vkd3d_shader.h:915
@ VKD3D_SHADER_D3DBC_INT_CONSTANT_REGISTER
Definition: vkd3d_shader.h:917
vkd3d_shader_compile_option_name
Definition: vkd3d_shader.h:265
@ VKD3D_SHADER_COMPILE_OPTION_WARN_IMPLICIT_TRUNCATION
Definition: vkd3d_shader.h:352
@ VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV
Definition: vkd3d_shader.h:281
@ VKD3D_SHADER_COMPILE_OPTION_BACKWARD_COMPATIBILITY
Definition: vkd3d_shader.h:310
@ VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ORDER
Definition: vkd3d_shader.h:302
@ VKD3D_SHADER_COMPILE_OPTION_CHILD_EFFECT
Definition: vkd3d_shader.h:341
@ VKD3D_SHADER_COMPILE_OPTION_API_VERSION
Definition: vkd3d_shader.h:279
@ VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE
Definition: vkd3d_shader.h:293
@ VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV
Definition: vkd3d_shader.h:275
@ VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN
Definition: vkd3d_shader.h:320
@ VKD3D_SHADER_COMPILE_OPTION_FEATURE
Definition: vkd3d_shader.h:330
@ VKD3D_SHADER_COMPILE_OPTION_STRIP_DEBUG
Definition: vkd3d_shader.h:273
@ VKD3D_SHADER_COMPILE_OPTION_INCLUDE_EMPTY_BUFFERS_IN_EFFECTS
Definition: vkd3d_shader.h:360
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING
Definition: vkd3d_shader.h:277
static uint32_t vkd3d_shader_create_swizzle(enum vkd3d_shader_swizzle_component x, enum vkd3d_shader_swizzle_component y, enum vkd3d_shader_swizzle_component z, enum vkd3d_shader_swizzle_component w)
vkd3d_shader_compile_option_formatting_flags
Definition: vkd3d_shader.h:153
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_IO_SIGNATURES
Definition: vkd3d_shader.h:165
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_OFFSETS
Definition: vkd3d_shader.h:157
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_HEADER
Definition: vkd3d_shader.h:158
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_COLOUR
Definition: vkd3d_shader.h:155
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_INDENT
Definition: vkd3d_shader.h:156
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_NONE
Definition: vkd3d_shader.h:154
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_RAW_IDS
Definition: vkd3d_shader.h:159
void(* PFN_vkd3d_shader_free_dxbc)(struct vkd3d_shader_dxbc_desc *dxbc)
vkd3d_shader_comparison_func
@ VKD3D_SHADER_COMPARISON_FUNC_EQUAL
@ VKD3D_SHADER_COMPARISON_FUNC_GREATER_EQUAL
@ VKD3D_SHADER_COMPARISON_FUNC_ALWAYS
@ VKD3D_SHADER_COMPARISON_FUNC_NEVER
@ VKD3D_SHADER_COMPARISON_FUNC_GREATER
@ VKD3D_SHADER_COMPARISON_FUNC_NOT_EQUAL
@ VKD3D_SHADER_COMPARISON_FUNC_LESS
@ VKD3D_SHADER_COMPARISON_FUNC_LESS_EQUAL
int(* PFN_vkd3d_shader_convert_root_signature)(struct vkd3d_shader_versioned_root_signature_desc *dst, enum vkd3d_shader_root_signature_version version, const struct vkd3d_shader_versioned_root_signature_desc *src)
void(* PFN_vkd3d_shader_build_varying_map)(const struct vkd3d_shader_signature *output_signature, const struct vkd3d_shader_signature *input_signature, unsigned int *count, struct vkd3d_shader_varying_map *varyings)
vkd3d_shader_resource_data_type
@ VKD3D_SHADER_RESOURCE_DATA_DOUBLE
@ VKD3D_SHADER_RESOURCE_DATA_MIXED
@ VKD3D_SHADER_RESOURCE_DATA_SNORM
@ VKD3D_SHADER_RESOURCE_DATA_CONTINUED
@ VKD3D_SHADER_RESOURCE_DATA_UINT
@ VKD3D_SHADER_RESOURCE_DATA_FLOAT
@ VKD3D_SHADER_RESOURCE_DATA_UNORM
@ VKD3D_SHADER_RESOURCE_DATA_INT
VKD3D_SHADER_API const char * vkd3d_shader_get_version(unsigned int *major, unsigned int *minor)
vkd3d_shader_parameter_type
Definition: vkd3d_shader.h:479
@ VKD3D_SHADER_PARAMETER_TYPE_BUFFER
Definition: vkd3d_shader.h:494
@ VKD3D_SHADER_PARAMETER_TYPE_UNKNOWN
Definition: vkd3d_shader.h:480
@ VKD3D_SHADER_PARAMETER_TYPE_SPECIALIZATION_CONSTANT
Definition: vkd3d_shader.h:487
@ VKD3D_SHADER_PARAMETER_TYPE_IMMEDIATE_CONSTANT
Definition: vkd3d_shader.h:482
int(* PFN_vkd3d_shader_open_include)(const char *filename, bool local, const char *parent_data, void *context, struct vkd3d_shader_code *out)
vkd3d_shader_compile_option_fragment_coordinate_origin
Definition: vkd3d_shader.h:215
@ VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN_LOWER_LEFT
Definition: vkd3d_shader.h:221
@ VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN_UPPER_LEFT
Definition: vkd3d_shader.h:218
VKD3D_SHADER_API void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code)
vkd3d_shader_parameter_data_type
Definition: vkd3d_shader.h:504
@ VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32_VEC4
Definition: vkd3d_shader.h:516
@ VKD3D_SHADER_PARAMETER_DATA_TYPE_UNKNOWN
Definition: vkd3d_shader.h:505
@ VKD3D_SHADER_PARAMETER_DATA_TYPE_UINT32
Definition: vkd3d_shader.h:507
@ VKD3D_SHADER_PARAMETER_DATA_TYPE_FLOAT32
Definition: vkd3d_shader.h:509
VKD3D_SHADER_API void vkd3d_shader_build_varying_map(const struct vkd3d_shader_signature *output_signature, const struct vkd3d_shader_signature *input_signature, unsigned int *count, struct vkd3d_shader_varying_map *varyings)
int(* PFN_vkd3d_shader_serialize_dxbc)(size_t section_count, const struct vkd3d_shader_dxbc_section_desc *sections, struct vkd3d_shader_code *dxbc, char **messages)
void(* PFN_vkd3d_shader_close_include)(const struct vkd3d_shader_code *code, void *context)
vkd3d_shader_descriptor_info_flag
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_RAW_BUFFER
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_READ
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_COUNTER
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_SAMPLER_COMPARISON_MODE
VKD3D_SHADER_API int vkd3d_shader_serialize_root_signature(const struct vkd3d_shader_versioned_root_signature_desc *root_signature, struct vkd3d_shader_code *dxbc, char **messages)
Definition: dxbc.c:1447
VKD3D_SHADER_API int vkd3d_shader_parse_input_signature(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_signature *signature, char **messages)
vkd3d_shader_root_parameter_type
@ VKD3D_SHADER_ROOT_PARAMETER_TYPE_SRV
@ VKD3D_SHADER_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE
@ VKD3D_SHADER_ROOT_PARAMETER_TYPE_CBV
@ VKD3D_SHADER_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS
@ VKD3D_SHADER_ROOT_PARAMETER_TYPE_UAV
vkd3d_shader_compile_option_backward_compatibility
Definition: vkd3d_shader.h:181
@ VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_MAP_SEMANTIC_NAMES
Definition: vkd3d_shader.h:193
@ VKD3D_SHADER_COMPILE_OPTION_DOUBLE_AS_FLOAT_ALIAS
Definition: vkd3d_shader.h:204
void(* PFN_vkd3d_shader_free_shader_signature)(struct vkd3d_shader_signature *signature)
int(* PFN_vkd3d_shader_scan)(const struct vkd3d_shader_compile_info *compile_info, char **messages)
VKD3D_SHADER_API int vkd3d_shader_parse_root_signature(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_versioned_root_signature_desc *root_signature, char **messages)
Definition: dxbc.c:1043
void(* PFN_vkd3d_shader_free_root_signature)(struct vkd3d_shader_versioned_root_signature_desc *root_signature)
vkd3d_shader_sysval_semantic
@ VKD3D_SHADER_SV_VERTEX_ID
@ VKD3D_SHADER_SV_RENDER_TARGET_ARRAY_INDEX
@ VKD3D_SHADER_SV_DEPTH_LESS_EQUAL
@ VKD3D_SHADER_SV_PRIMITIVE_ID
@ VKD3D_SHADER_SV_COVERAGE
@ VKD3D_SHADER_SV_CULL_DISTANCE
@ VKD3D_SHADER_SV_DEPTH
@ VKD3D_SHADER_SV_TESS_FACTOR_TRIEDGE
@ VKD3D_SHADER_SV_TARGET
@ VKD3D_SHADER_SV_NONE
@ VKD3D_SHADER_SV_TESS_FACTOR_LINEDET
@ VKD3D_SHADER_SV_TESS_FACTOR_QUADEDGE
@ VKD3D_SHADER_SV_IS_FRONT_FACE
@ VKD3D_SHADER_SV_VIEWPORT_ARRAY_INDEX
@ VKD3D_SHADER_SV_TESS_FACTOR_QUADINT
@ VKD3D_SHADER_SV_TESS_FACTOR_TRIINT
@ VKD3D_SHADER_SV_TESS_FACTOR_LINEDEN
@ VKD3D_SHADER_SV_DEPTH_GREATER_EQUAL
@ VKD3D_SHADER_SV_INSTANCE_ID
@ VKD3D_SHADER_SV_CLIP_DISTANCE
@ VKD3D_SHADER_SV_SAMPLE_INDEX
@ VKD3D_SHADER_SV_STENCIL_REF
@ VKD3D_SHADER_SV_POSITION
vkd3d_shader_source_type
@ VKD3D_SHADER_SOURCE_DXBC_DXIL
@ VKD3D_SHADER_SOURCE_D3D_BYTECODE
@ VKD3D_SHADER_SOURCE_HLSL
@ VKD3D_SHADER_SOURCE_FX
@ VKD3D_SHADER_SOURCE_DXBC_TPF
@ VKD3D_SHADER_SOURCE_NONE
VKD3D_SHADER_API void vkd3d_shader_free_shader_signature(struct vkd3d_shader_signature *signature)
vkd3d_shader_parse_dxbc_flags
Definition: vkd3d_shader.h:256
@ VKD3D_SHADER_PARSE_DXBC_IGNORE_CHECKSUM
Definition: vkd3d_shader.h:259
VKD3D_SHADER_API int vkd3d_shader_serialize_dxbc(size_t section_count, const struct vkd3d_shader_dxbc_section_desc *sections, struct vkd3d_shader_code *dxbc, char **messages)
Definition: dxbc.c:53
vkd3d_shader_log_level
@ VKD3D_SHADER_LOG_NONE
@ VKD3D_SHADER_LOG_ERROR
@ VKD3D_SHADER_LOG_WARNING
@ VKD3D_SHADER_LOG_INFO
VKD3D_SHADER_API int vkd3d_shader_scan(const struct vkd3d_shader_compile_info *compile_info, char **messages)
vkd3d_shader_structure_type
Definition: vkd3d_shader.h:66
@ VKD3D_SHADER_STRUCTURE_TYPE_TRANSFORM_FEEDBACK_INFO
Definition: vkd3d_shader.h:78
@ VKD3D_SHADER_STRUCTURE_TYPE_SCAN_COMBINED_RESOURCE_SAMPLER_INFO
Definition: vkd3d_shader.h:109
@ VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO
Definition: vkd3d_shader.h:68
@ VKD3D_SHADER_STRUCTURE_TYPE_PARAMETER_INFO
Definition: vkd3d_shader.h:114
@ VKD3D_SHADER_STRUCTURE_TYPE_SCAN_DESCRIPTOR_INFO
Definition: vkd3d_shader.h:72
@ VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_DOMAIN_SHADER_TARGET_INFO
Definition: vkd3d_shader.h:74
@ VKD3D_SHADER_STRUCTURE_TYPE_DESCRIPTOR_OFFSET_INFO
Definition: vkd3d_shader.h:94
@ VKD3D_SHADER_STRUCTURE_TYPE_SCAN_SIGNATURE_INFO
Definition: vkd3d_shader.h:99
@ VKD3D_SHADER_STRUCTURE_TYPE_PREPROCESS_INFO
Definition: vkd3d_shader.h:89
@ VKD3D_SHADER_STRUCTURE_TYPE_INTERFACE_INFO
Definition: vkd3d_shader.h:70
@ VKD3D_SHADER_STRUCTURE_TYPE_VARYING_MAP_INFO
Definition: vkd3d_shader.h:104
@ VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_TARGET_INFO
Definition: vkd3d_shader.h:76
@ VKD3D_SHADER_STRUCTURE_TYPE_HLSL_SOURCE_INFO
Definition: vkd3d_shader.h:84
vkd3d_shader_visibility
Definition: vkd3d_shader.h:383
@ VKD3D_SHADER_VISIBILITY_DOMAIN
Definition: vkd3d_shader.h:391
@ VKD3D_SHADER_VISIBILITY_COMPUTE
Definition: vkd3d_shader.h:398
@ VKD3D_SHADER_VISIBILITY_PIXEL
Definition: vkd3d_shader.h:395
@ VKD3D_SHADER_VISIBILITY_ALL
Definition: vkd3d_shader.h:385
@ VKD3D_SHADER_VISIBILITY_GEOMETRY
Definition: vkd3d_shader.h:393
@ VKD3D_SHADER_VISIBILITY_VERTEX
Definition: vkd3d_shader.h:387
@ VKD3D_SHADER_VISIBILITY_HULL
Definition: vkd3d_shader.h:389
VKD3D_SHADER_API void vkd3d_shader_free_scan_combined_resource_sampler_info(struct vkd3d_shader_scan_combined_resource_sampler_info *info)
vkd3d_shader_spirv_extension
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_DEMOTE_TO_HELPER_INVOCATION
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_FRAGMENT_SHADER_INTERLOCK
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_STENCIL_EXPORT
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER
@ VKD3D_SHADER_SPIRV_EXTENSION_NONE
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_DESCRIPTOR_INDEXING
vkd3d_shader_tessellator_output_primitive
@ VKD3D_SHADER_TESSELLATOR_OUTPUT_TRIANGLE_CW
@ VKD3D_SHADER_TESSELLATOR_OUTPUT_POINT
@ VKD3D_SHADER_TESSELLATOR_OUTPUT_TRIANGLE_CCW
@ VKD3D_SHADER_TESSELLATOR_OUTPUT_LINE
vkd3d_shader_api_version
Definition: vkd3d_shader.h:44
@ VKD3D_SHADER_API_VERSION_1_1
Definition: vkd3d_shader.h:46
@ VKD3D_SHADER_API_VERSION_1_13
Definition: vkd3d_shader.h:58
@ VKD3D_SHADER_API_VERSION_1_5
Definition: vkd3d_shader.h:50
@ VKD3D_SHADER_API_VERSION_1_2
Definition: vkd3d_shader.h:47
@ VKD3D_SHADER_API_VERSION_1_10
Definition: vkd3d_shader.h:55
@ VKD3D_SHADER_API_VERSION_1_3
Definition: vkd3d_shader.h:48
@ VKD3D_SHADER_API_VERSION_1_8
Definition: vkd3d_shader.h:53
@ VKD3D_SHADER_API_VERSION_1_0
Definition: vkd3d_shader.h:45
@ VKD3D_SHADER_API_VERSION_1_14
Definition: vkd3d_shader.h:59
@ VKD3D_SHADER_API_VERSION_1_6
Definition: vkd3d_shader.h:51
@ VKD3D_SHADER_API_VERSION_1_4
Definition: vkd3d_shader.h:49
@ VKD3D_SHADER_API_VERSION_1_7
Definition: vkd3d_shader.h:52
@ VKD3D_SHADER_API_VERSION_1_11
Definition: vkd3d_shader.h:56
@ VKD3D_SHADER_API_VERSION_1_9
Definition: vkd3d_shader.h:54
@ VKD3D_SHADER_API_VERSION_1_12
Definition: vkd3d_shader.h:57
vkd3d_shader_component_type
@ VKD3D_SHADER_COMPONENT_INT
@ VKD3D_SHADER_COMPONENT_UINT
@ VKD3D_SHADER_COMPONENT_DOUBLE
@ VKD3D_SHADER_COMPONENT_UINT64
@ VKD3D_SHADER_COMPONENT_FLOAT
@ VKD3D_SHADER_COMPONENT_VOID
@ VKD3D_SHADER_COMPONENT_BOOL
vkd3d_shader_descriptor_type
Definition: vkd3d_shader.h:420
@ VKD3D_SHADER_DESCRIPTOR_TYPE_UAV
Definition: vkd3d_shader.h:430
@ VKD3D_SHADER_DESCRIPTOR_TYPE_CBV
Definition: vkd3d_shader.h:435
@ VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER
Definition: vkd3d_shader.h:440
@ VKD3D_SHADER_DESCRIPTOR_TYPE_SRV
Definition: vkd3d_shader.h:425
#define VKD3D_SHADER_SWIZZLE_MASK
vkd3d_shader_resource_type
@ VKD3D_SHADER_RESOURCE_NONE
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DARRAY
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DMS
@ VKD3D_SHADER_RESOURCE_TEXTURE_3D
@ VKD3D_SHADER_RESOURCE_TEXTURE_1DARRAY
@ VKD3D_SHADER_RESOURCE_BUFFER
@ VKD3D_SHADER_RESOURCE_TEXTURE_CUBE
@ VKD3D_SHADER_RESOURCE_TEXTURE_1D
@ VKD3D_SHADER_RESOURCE_TEXTURE_CUBEARRAY
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY
@ VKD3D_SHADER_RESOURCE_TEXTURE_2D
VKD3D_SHADER_API void vkd3d_shader_free_dxbc(struct vkd3d_shader_dxbc_desc *dxbc)
Definition: dxbc.c:290
VKD3D_SHADER_API enum vkd3d_shader_source_type * vkd3d_shader_get_supported_source_types(unsigned int *count)
vkd3d_shader_binding_flag
Definition: vkd3d_shader.h:467
@ VKD3D_SHADER_BINDING_FLAG_IMAGE
Definition: vkd3d_shader.h:469
@ VKD3D_SHADER_BINDING_FLAG_BUFFER
Definition: vkd3d_shader.h:468
vkd3d_shader_root_descriptor_flags
@ VKD3D_SHADER_ROOT_DESCRIPTOR_FLAG_DATA_STATIC
@ VKD3D_SHADER_ROOT_DESCRIPTOR_FLAG_NONE
@ VKD3D_SHADER_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE
@ VKD3D_SHADER_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE
VKD3D_SHADER_API void vkd3d_shader_set_log_callback(PFN_vkd3d_log callback)
int(* PFN_vkd3d_shader_parse_root_signature)(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_versioned_root_signature_desc *root_signature, char **messages)
VKD3D_SHADER_API void vkd3d_shader_free_scan_signature_info(struct vkd3d_shader_scan_signature_info *info)
vkd3d_shader_tessellator_partitioning
@ VKD3D_SHADER_TESSELLATOR_PARTITIONING_INTEGER
@ VKD3D_SHADER_TESSELLATOR_PARTITIONING_POW2
@ VKD3D_SHADER_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD
@ VKD3D_SHADER_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN
int(* PFN_vkd3d_shader_serialize_root_signature)(const struct vkd3d_shader_versioned_root_signature_desc *root_signature, struct vkd3d_shader_code *dxbc, char **messages)
vkd3d_shader_compile_option_typed_uav
Definition: vkd3d_shader.h:140
@ VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV_READ_FORMAT_UNKNOWN
Definition: vkd3d_shader.h:147
@ VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV_READ_FORMAT_R32
Definition: vkd3d_shader.h:142
#define VKD3D_SHADER_API
int(* PFN_vkd3d_shader_parse_dxbc)(const struct vkd3d_shader_code *dxbc, uint32_t flags, struct vkd3d_shader_dxbc_desc *desc, char **messages)
VKD3D_SHADER_API int vkd3d_shader_parse_dxbc(const struct vkd3d_shader_code *dxbc, uint32_t flags, struct vkd3d_shader_dxbc_desc *desc, char **messages)
Definition: dxbc.c:320
vkd3d_shader_swizzle_component
@ VKD3D_FORCE_32_BIT_ENUM
Definition: vkd3d_shader.h:61
@ VKD3D_SHADER_SWIZZLE_X
@ VKD3D_SHADER_SWIZZLE_Y
@ VKD3D_SHADER_SWIZZLE_W
@ VKD3D_SHADER_SWIZZLE_Z
VKD3D_SHADER_API int vkd3d_shader_compile(const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
VKD3D_SHADER_API int vkd3d_shader_convert_root_signature(struct vkd3d_shader_versioned_root_signature_desc *dst, enum vkd3d_shader_root_signature_version version, const struct vkd3d_shader_versioned_root_signature_desc *src)
Definition: dxbc.c:1756
int(* PFN_vkd3d_shader_compile)(const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
void(* PFN_vkd3d_shader_free_scan_descriptor_info)(struct vkd3d_shader_scan_descriptor_info *scan_descriptor_info)
vkd3d_shader_descriptor_range_flags
@ VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE
@ VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS
@ VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE
@ VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DATA_STATIC
@ VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_NONE
@ VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE
VKD3D_SHADER_API int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
vkd3d_shader_root_signature_flags
@ VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS
@ VKD3D_SHADER_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT
@ VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS
@ VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS
@ VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS
@ VKD3D_SHADER_ROOT_SIGNATURE_FLAG_NONE
@ VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS
@ VKD3D_SHADER_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT
#define VKD3D_SHADER_SWIZZLE_SHIFT(idx)
void(* PFN_vkd3d_shader_free_messages)(char *messages)
vkd3d_shader_root_signature_version
@ VKD3D_SHADER_ROOT_SIGNATURE_VERSION_1_1
@ VKD3D_SHADER_ROOT_SIGNATURE_VERSION_1_0
VKD3D_SHADER_API enum vkd3d_shader_target_type * vkd3d_shader_get_supported_target_types(enum vkd3d_shader_source_type source_type, unsigned int *count)
vkd3d_shader_minimum_precision
@ VKD3D_SHADER_MINIMUM_PRECISION_UINT_16
@ VKD3D_SHADER_MINIMUM_PRECISION_FIXED_8_2
@ VKD3D_SHADER_MINIMUM_PRECISION_NONE
@ VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_16
@ VKD3D_SHADER_MINIMUM_PRECISION_INT_16
void(* PFN_vkd3d_shader_free_scan_signature_info)(struct vkd3d_shader_scan_signature_info *info)
int(* PFN_vkd3d_shader_parse_input_signature)(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_signature *signature, char **messages)
VKD3D_SHADER_API void vkd3d_shader_free_scan_descriptor_info(struct vkd3d_shader_scan_descriptor_info *scan_descriptor_info)
void(* PFN_vkd3d_shader_preprocess)(struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
vkd3d_shader_target_type
@ VKD3D_SHADER_TARGET_SPIRV_BINARY
@ VKD3D_SHADER_TARGET_D3D_ASM
@ VKD3D_SHADER_TARGET_NONE
@ VKD3D_SHADER_TARGET_SPIRV_TEXT
@ VKD3D_SHADER_TARGET_DXBC_TPF
@ VKD3D_SHADER_TARGET_GLSL
@ VKD3D_SHADER_TARGET_MSL
@ VKD3D_SHADER_TARGET_D3D_BYTECODE
@ VKD3D_SHADER_TARGET_FX
void(* PFN_vkd3d_shader_free_shader_code)(struct vkd3d_shader_code *code)
vkd3d_shader_compile_option_pack_matrix_order
Definition: vkd3d_shader.h:172
@ VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_COLUMN_MAJOR
Definition: vkd3d_shader.h:174
@ VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ROW_MAJOR
Definition: vkd3d_shader.h:173
vkd3d_shader_spirv_environment
@ VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0
@ VKD3D_SHADER_SPIRV_ENVIRONMENT_OPENGL_4_5
@ VKD3D_SHADER_SPIRV_ENVIRONMENT_NONE
@ VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_1
vkd3d_shader_texture_address_mode
@ VKD3D_SHADER_TEXTURE_ADDRESS_MODE_BORDER
@ VKD3D_SHADER_TEXTURE_ADDRESS_MODE_CLAMP
@ VKD3D_SHADER_TEXTURE_ADDRESS_MODE_MIRROR
@ VKD3D_SHADER_TEXTURE_ADDRESS_MODE_MIRROR_ONCE
@ VKD3D_SHADER_TEXTURE_ADDRESS_MODE_WRAP
vkd3d_shader_compile_option_feature_flags
Definition: vkd3d_shader.h:228
@ VKD3D_SHADER_COMPILE_OPTION_FEATURE_WAVE_OPS
Definition: vkd3d_shader.h:245
@ VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64
Definition: vkd3d_shader.h:232
@ VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64
Definition: vkd3d_shader.h:236
void(* PFN_vkd3d_shader_set_log_callback)(PFN_vkd3d_log callback)
vkd3d_shader_filter
@ VKD3D_SHADER_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR
@ VKD3D_SHADER_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT
@ VKD3D_SHADER_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
@ VKD3D_SHADER_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT
@ VKD3D_SHADER_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MIN_MAG_MIP_POINT
@ VKD3D_SHADER_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT
@ VKD3D_SHADER_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT
@ VKD3D_SHADER_FILTER_MAXIMUM_MIN_MAG_MIP_POINT
@ VKD3D_SHADER_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT
@ VKD3D_SHADER_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR
@ VKD3D_SHADER_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT
@ VKD3D_SHADER_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT
@ VKD3D_SHADER_FILTER_MINIMUM_MIN_MAG_MIP_POINT
@ VKD3D_SHADER_FILTER_MIN_LINEAR_MAG_MIP_POINT
@ VKD3D_SHADER_FILTER_MAXIMUM_ANISOTROPIC
@ VKD3D_SHADER_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
@ VKD3D_SHADER_FILTER_ANISOTROPIC
@ VKD3D_SHADER_FILTER_MINIMUM_ANISOTROPIC
@ VKD3D_SHADER_FILTER_COMPARISON_MIN_MAG_MIP_POINT
@ VKD3D_SHADER_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR
@ VKD3D_SHADER_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT
@ VKD3D_SHADER_FILTER_MIN_POINT_MAG_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT
@ VKD3D_SHADER_FILTER_MIN_MAG_POINT_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MIN_MAG_LINEAR_MIP_POINT
@ VKD3D_SHADER_FILTER_MIN_MAG_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR
@ VKD3D_SHADER_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR
@ VKD3D_SHADER_FILTER_COMPARISON_ANISOTROPIC
vkd3d_shader_parameter_name
Definition: vkd3d_shader.h:526
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_6
Definition: vkd3d_shader.h:650
@ VKD3D_SHADER_PARAMETER_NAME_POINT_SPRITE
Definition: vkd3d_shader.h:736
@ VKD3D_SHADER_PARAMETER_NAME_RASTERIZER_SAMPLE_COUNT
Definition: vkd3d_shader.h:540
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_5
Definition: vkd3d_shader.h:649
@ VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_FUNC
Definition: vkd3d_shader.h:565
@ VKD3D_SHADER_PARAMETER_NAME_UNKNOWN
Definition: vkd3d_shader.h:527
@ VKD3D_SHADER_PARAMETER_NAME_ALPHA_TEST_REF
Definition: vkd3d_shader.h:575
@ VKD3D_SHADER_PARAMETER_NAME_POINT_SIZE_MAX
Definition: vkd3d_shader.h:703
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_3
Definition: vkd3d_shader.h:647
@ VKD3D_SHADER_PARAMETER_NAME_POINT_SIZE_MIN
Definition: vkd3d_shader.h:693
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_7
Definition: vkd3d_shader.h:651
@ VKD3D_SHADER_PARAMETER_NAME_POINT_SIZE
Definition: vkd3d_shader.h:670
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_1
Definition: vkd3d_shader.h:645
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_0
Definition: vkd3d_shader.h:644
@ VKD3D_SHADER_PARAMETER_NAME_FLAT_INTERPOLATION
Definition: vkd3d_shader.h:599
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_MASK
Definition: vkd3d_shader.h:627
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_4
Definition: vkd3d_shader.h:648
@ VKD3D_SHADER_PARAMETER_NAME_CLIP_PLANE_2
Definition: vkd3d_shader.h:646
VKD3D_SHADER_API void vkd3d_shader_free_messages(char *messages)
void(* PFN_vkd3d_shader_free_scan_combined_resource_sampler_info)(struct vkd3d_shader_scan_combined_resource_sampler_info *info)
VKD3D_SHADER_API void vkd3d_shader_free_root_signature(struct vkd3d_shader_versioned_root_signature_desc *root_signature)
vkd3d_shader_compile_option_buffer_uav
Definition: vkd3d_shader.h:126
@ VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV_STORAGE_TEXEL_BUFFER
Definition: vkd3d_shader.h:128
@ VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV_STORAGE_BUFFER
Definition: vkd3d_shader.h:130
vkd3d_shader_static_border_colour
@ VKD3D_SHADER_STATIC_BORDER_COLOUR_TRANSPARENT_BLACK
@ VKD3D_SHADER_STATIC_BORDER_COLOUR_OPAQUE_BLACK
@ VKD3D_SHADER_STATIC_BORDER_COLOUR_OPAQUE_WHITE
void(* PFN_vkd3d_log)(const char *format, va_list args)
Definition: vkd3d_types.h:66
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383