19 #ifndef __VKD3D_SHADER_H
20 #define __VKD3D_SHADER_H
45 VKD3D_SHADER_API_VERSION_1_0,
46 VKD3D_SHADER_API_VERSION_1_1,
47 VKD3D_SHADER_API_VERSION_1_2,
48 VKD3D_SHADER_API_VERSION_1_3,
49 VKD3D_SHADER_API_VERSION_1_4,
50 VKD3D_SHADER_API_VERSION_1_5,
51 VKD3D_SHADER_API_VERSION_1_6,
52 VKD3D_SHADER_API_VERSION_1_7,
53 VKD3D_SHADER_API_VERSION_1_8,
54 VKD3D_SHADER_API_VERSION_1_9,
55 VKD3D_SHADER_API_VERSION_1_10,
56 VKD3D_SHADER_API_VERSION_1_11,
57 VKD3D_SHADER_API_VERSION_1_12,
59 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_API_VERSION),
109 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_STRUCTURE_TYPE),
147 VKD3D_SHADER_COMPILE_OPTION_FORMATTING_NONE = 0x00000000,
148 VKD3D_SHADER_COMPILE_OPTION_FORMATTING_COLOUR = 0x00000001,
149 VKD3D_SHADER_COMPILE_OPTION_FORMATTING_INDENT = 0x00000002,
150 VKD3D_SHADER_COMPILE_OPTION_FORMATTING_OFFSETS = 0x00000004,
151 VKD3D_SHADER_COMPILE_OPTION_FORMATTING_HEADER = 0x00000008,
152 VKD3D_SHADER_COMPILE_OPTION_FORMATTING_RAW_IDS = 0x00000010,
160 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_FORMATTING_FLAGS),
166 VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ROW_MAJOR = 0x00000001,
167 VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_COLUMN_MAJOR = 0x00000002,
229 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLAGS),
243 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_PARSE_DXBC_FLAGS),
344 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_NAME),
382 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_VISIBILITY),
424 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_TYPE),
448 enum vkd3d_shader_binding_flag
450 VKD3D_SHADER_BINDING_FLAG_BUFFER = 0x00000001,
451 VKD3D_SHADER_BINDING_FLAG_IMAGE = 0x00000002,
453 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_BINDING_FLAG),
456 enum vkd3d_shader_parameter_type
458 VKD3D_SHADER_PARAMETER_TYPE_UNKNOWN,
459 VKD3D_SHADER_PARAMETER_TYPE_IMMEDIATE_CONSTANT,
460 VKD3D_SHADER_PARAMETER_TYPE_SPECIALIZATION_CONSTANT,
462 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_PARAMETER_TYPE),
465 enum vkd3d_shader_parameter_data_type
467 VKD3D_SHADER_PARAMETER_DATA_TYPE_UNKNOWN,
468 VKD3D_SHADER_PARAMETER_DATA_TYPE_UINT32,
470 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_PARAMETER_DATA_TYPE),
473 enum vkd3d_shader_parameter_name
475 VKD3D_SHADER_PARAMETER_NAME_UNKNOWN,
476 VKD3D_SHADER_PARAMETER_NAME_RASTERIZER_SAMPLE_COUNT,
478 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_PARAMETER_NAME),
496 enum vkd3d_shader_parameter_name name;
497 enum vkd3d_shader_parameter_type type;
498 enum vkd3d_shader_parameter_data_type data_type;
567 #define VKD3D_SHADER_DUMMY_SAMPLER_INDEX ~0u
692 unsigned int stream_index;
693 const char *semantic_name;
694 unsigned int semantic_index;
695 uint8_t component_index;
696 uint8_t component_count;
707 unsigned int element_count;
708 const unsigned int *buffer_strides;
709 unsigned int buffer_stride_count;
714 unsigned int static_offset;
715 unsigned int dynamic_offset_index;
822 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SOURCE_TYPE),
838 VKD3D_SHADER_TARGET_SPIRV_TEXT,
863 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TARGET_TYPE),
883 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_LOG_LEVEL),
933 VKD3D_SHADER_SPIRV_ENVIRONMENT_NONE,
934 VKD3D_SHADER_SPIRV_ENVIRONMENT_OPENGL_4_5,
935 VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_0,
939 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SPIRV_ENVIRONMENT),
944 VKD3D_SHADER_SPIRV_EXTENSION_NONE,
945 VKD3D_SHADER_SPIRV_EXTENSION_EXT_DEMOTE_TO_HELPER_INVOCATION,
955 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SPIRV_EXTENSION),
964 const char *entry_point;
969 unsigned int extension_count;
972 unsigned int parameter_count;
974 bool dual_source_blending;
975 const unsigned int *output_swizzles;
976 unsigned int output_swizzle_count;
979 enum vkd3d_shader_tessellator_output_primitive
981 VKD3D_SHADER_TESSELLATOR_OUTPUT_POINT = 0x1,
982 VKD3D_SHADER_TESSELLATOR_OUTPUT_LINE = 0x2,
983 VKD3D_SHADER_TESSELLATOR_OUTPUT_TRIANGLE_CW = 0x3,
984 VKD3D_SHADER_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 0x4,
986 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TESSELLATOR_OUTPUT_PRIMITIVE),
989 enum vkd3d_shader_tessellator_partitioning
991 VKD3D_SHADER_TESSELLATOR_PARTITIONING_INTEGER = 0x1,
992 VKD3D_SHADER_TESSELLATOR_PARTITIONING_POW2 = 0x2,
993 VKD3D_SHADER_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 0x3,
994 VKD3D_SHADER_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 0x4,
996 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TESSELLATOR_PARTITIONING),
1005 enum vkd3d_shader_tessellator_output_primitive output_primitive;
1006 enum vkd3d_shader_tessellator_partitioning partitioning;
1168 enum vkd3d_shader_filter
1170 VKD3D_SHADER_FILTER_MIN_MAG_MIP_POINT = 0x000,
1171 VKD3D_SHADER_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x001,
1172 VKD3D_SHADER_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x004,
1173 VKD3D_SHADER_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x005,
1174 VKD3D_SHADER_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x010,
1175 VKD3D_SHADER_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x011,
1176 VKD3D_SHADER_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x014,
1177 VKD3D_SHADER_FILTER_MIN_MAG_MIP_LINEAR = 0x015,
1178 VKD3D_SHADER_FILTER_ANISOTROPIC = 0x055,
1179 VKD3D_SHADER_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x080,
1180 VKD3D_SHADER_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x081,
1181 VKD3D_SHADER_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x084,
1182 VKD3D_SHADER_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x085,
1183 VKD3D_SHADER_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x090,
1184 VKD3D_SHADER_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x091,
1185 VKD3D_SHADER_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x094,
1186 VKD3D_SHADER_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x095,
1187 VKD3D_SHADER_FILTER_COMPARISON_ANISOTROPIC = 0x0d5,
1188 VKD3D_SHADER_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
1189 VKD3D_SHADER_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
1190 VKD3D_SHADER_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
1191 VKD3D_SHADER_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
1192 VKD3D_SHADER_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
1193 VKD3D_SHADER_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
1194 VKD3D_SHADER_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
1195 VKD3D_SHADER_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
1196 VKD3D_SHADER_FILTER_MINIMUM_ANISOTROPIC = 0x155,
1197 VKD3D_SHADER_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
1198 VKD3D_SHADER_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
1199 VKD3D_SHADER_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
1200 VKD3D_SHADER_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
1201 VKD3D_SHADER_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
1202 VKD3D_SHADER_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
1203 VKD3D_SHADER_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
1204 VKD3D_SHADER_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
1205 VKD3D_SHADER_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5,
1207 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_FILTER),
1210 enum vkd3d_shader_texture_address_mode
1212 VKD3D_SHADER_TEXTURE_ADDRESS_MODE_WRAP = 0x1,
1213 VKD3D_SHADER_TEXTURE_ADDRESS_MODE_MIRROR = 0x2,
1214 VKD3D_SHADER_TEXTURE_ADDRESS_MODE_CLAMP = 0x3,
1215 VKD3D_SHADER_TEXTURE_ADDRESS_MODE_BORDER = 0x4,
1216 VKD3D_SHADER_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 0x5,
1218 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_TEXTURE_ADDRESS_MODE),
1221 enum vkd3d_shader_comparison_func
1223 VKD3D_SHADER_COMPARISON_FUNC_NEVER = 0x1,
1224 VKD3D_SHADER_COMPARISON_FUNC_LESS = 0x2,
1225 VKD3D_SHADER_COMPARISON_FUNC_EQUAL = 0x3,
1226 VKD3D_SHADER_COMPARISON_FUNC_LESS_EQUAL = 0x4,
1227 VKD3D_SHADER_COMPARISON_FUNC_GREATER = 0x5,
1228 VKD3D_SHADER_COMPARISON_FUNC_NOT_EQUAL = 0x6,
1229 VKD3D_SHADER_COMPARISON_FUNC_GREATER_EQUAL = 0x7,
1230 VKD3D_SHADER_COMPARISON_FUNC_ALWAYS = 0x8,
1232 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPARISON_FUNC),
1235 enum vkd3d_shader_static_border_colour
1237 VKD3D_SHADER_STATIC_BORDER_COLOUR_TRANSPARENT_BLACK = 0x0,
1238 VKD3D_SHADER_STATIC_BORDER_COLOUR_OPAQUE_BLACK = 0x1,
1239 VKD3D_SHADER_STATIC_BORDER_COLOUR_OPAQUE_WHITE = 0x2,
1241 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_STATIC_BORDER_COLOUR),
1246 enum vkd3d_shader_filter filter;
1247 enum vkd3d_shader_texture_address_mode address_u;
1248 enum vkd3d_shader_texture_address_mode address_v;
1249 enum vkd3d_shader_texture_address_mode address_w;
1251 unsigned int max_anisotropy;
1252 enum vkd3d_shader_comparison_func comparison_func;
1253 enum vkd3d_shader_static_border_colour border_colour;
1256 unsigned int shader_register;
1257 unsigned int register_space;
1264 unsigned int descriptor_count;
1265 unsigned int base_shader_register;
1266 unsigned int register_space;
1267 unsigned int descriptor_table_offset;
1272 unsigned int descriptor_range_count;
1278 unsigned int shader_register;
1279 unsigned int register_space;
1280 unsigned int value_count;
1285 unsigned int shader_register;
1286 unsigned int register_space;
1289 enum vkd3d_shader_root_parameter_type
1291 VKD3D_SHADER_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0x0,
1292 VKD3D_SHADER_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = 0x1,
1293 VKD3D_SHADER_ROOT_PARAMETER_TYPE_CBV = 0x2,
1294 VKD3D_SHADER_ROOT_PARAMETER_TYPE_SRV = 0x3,
1295 VKD3D_SHADER_ROOT_PARAMETER_TYPE_UAV = 0x4,
1297 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_ROOT_PARAMETER_TYPE),
1302 enum vkd3d_shader_root_parameter_type parameter_type;
1312 enum vkd3d_shader_root_signature_flags
1314 VKD3D_SHADER_ROOT_SIGNATURE_FLAG_NONE = 0x00,
1315 VKD3D_SHADER_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x01,
1316 VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x02,
1317 VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x04,
1318 VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x08,
1319 VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
1320 VKD3D_SHADER_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
1321 VKD3D_SHADER_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
1323 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_ROOT_SIGNATURE_FLAGS),
1328 unsigned int parameter_count;
1330 unsigned int static_sampler_count;
1332 enum vkd3d_shader_root_signature_flags flags;
1336 enum vkd3d_shader_root_descriptor_flags
1338 VKD3D_SHADER_ROOT_DESCRIPTOR_FLAG_NONE = 0x0,
1339 VKD3D_SHADER_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
1340 VKD3D_SHADER_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
1341 VKD3D_SHADER_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8,
1343 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_ROOT_DESCRIPTOR_FLAGS),
1348 VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_NONE = 0x0,
1349 VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
1350 VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
1351 VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
1352 VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
1356 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_RANGE_FLAGS),
1362 unsigned int descriptor_count;
1363 unsigned int base_shader_register;
1364 unsigned int register_space;
1366 unsigned int descriptor_table_offset;
1371 unsigned int descriptor_range_count;
1377 unsigned int shader_register;
1378 unsigned int register_space;
1379 enum vkd3d_shader_root_descriptor_flags flags;
1384 enum vkd3d_shader_root_parameter_type parameter_type;
1396 unsigned int parameter_count;
1398 unsigned int static_sampler_count;
1400 enum vkd3d_shader_root_signature_flags flags;
1403 enum vkd3d_shader_root_signature_version
1405 VKD3D_SHADER_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
1406 VKD3D_SHADER_ROOT_SIGNATURE_VERSION_1_1 = 0x2,
1408 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_ROOT_SIGNATURE_VERSION),
1413 enum vkd3d_shader_root_signature_version version;
1453 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_RESOURCE_TYPE),
1483 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_RESOURCE_DATA_TYPE),
1507 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_DESCRIPTOR_INFO_FLAG),
1597 unsigned int resource_space;
1598 unsigned int resource_index;
1599 unsigned int sampler_space;
1600 unsigned int sampler_index;
1657 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPONENT_TYPE),
1685 VKD3D_SHADER_SV_TESS_FACTOR_QUADEDGE = 0x0b,
1686 VKD3D_SHADER_SV_TESS_FACTOR_QUADINT = 0x0c,
1687 VKD3D_SHADER_SV_TESS_FACTOR_TRIEDGE = 0x0d,
1688 VKD3D_SHADER_SV_TESS_FACTOR_TRIINT = 0x0e,
1689 VKD3D_SHADER_SV_TESS_FACTOR_LINEDET = 0x0f,
1690 VKD3D_SHADER_SV_TESS_FACTOR_LINEDEN = 0x10,
1710 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SYSVAL_SEMANTIC),
1719 VKD3D_SHADER_MINIMUM_PRECISION_NONE = 0,
1729 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_MINIMUM_PRECISION),
1786 VKD3D_SHADER_SWIZZLE_X = 0x0,
1787 VKD3D_SHADER_SWIZZLE_Y = 0x1,
1788 VKD3D_SHADER_SWIZZLE_Z = 0x2,
1789 VKD3D_SHADER_SWIZZLE_W = 0x3,
1791 VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_SWIZZLE_COMPONENT),
1838 #define VKD3D_SHADER_SWIZZLE_MASK (0xffu)
1840 #define VKD3D_SHADER_SWIZZLE_SHIFT(idx) (8u * (idx))
1851 #define VKD3D_SHADER_SWIZZLE(x, y, z, w) \
1852 (VKD3D_SHADER_SWIZZLE_ ## x << VKD3D_SHADER_SWIZZLE_SHIFT(0) \
1853 | VKD3D_SHADER_SWIZZLE_ ## y << VKD3D_SHADER_SWIZZLE_SHIFT(1) \
1854 | VKD3D_SHADER_SWIZZLE_ ## z << VKD3D_SHADER_SWIZZLE_SHIFT(2) \
1855 | VKD3D_SHADER_SWIZZLE_ ## w << VKD3D_SHADER_SWIZZLE_SHIFT(3))
1858 #define VKD3D_SHADER_NO_SWIZZLE VKD3D_SHADER_SWIZZLE(X, Y, Z, W)
1997 #ifdef LIBVKD3D_SHADER_SOURCE
1998 # define VKD3D_SHADER_API VKD3D_EXPORT
2000 # define VKD3D_SHADER_API VKD3D_IMPORT
2003 #ifndef VKD3D_SHADER_NO_PROTOTYPES
2569 typedef const char *(*PFN_vkd3d_shader_get_version)(
unsigned int *major,
unsigned int *minor);
2611 unsigned int semantic_index,
unsigned int stream_index);
A generic structure containing a GPU shader, in text or byte-code format.
Definition: vkd3d_shader.h:387
const void * code
Pointer to the code.
Definition: vkd3d_shader.h:395
size_t size
Size of code, in bytes.
Definition: vkd3d_shader.h:397
This structure describes a single resource-sampler pair.
Definition: vkd3d_shader.h:1596
Describes the mapping of a Direct3D resource-sampler pair to a combined sampler (i....
Definition: vkd3d_shader.h:576
struct vkd3d_shader_descriptor_binding binding
The binding in the target environment.
Definition: vkd3d_shader.h:597
unsigned int resource_index
Register index of the Direct3D resource.
Definition: vkd3d_shader.h:583
unsigned int sampler_index
Register index of the Direct3D sampler.
Definition: vkd3d_shader.h:590
unsigned int sampler_space
Register space of the Direct3D sampler.
Definition: vkd3d_shader.h:588
unsigned int resource_space
Register space of the Direct3D resource.
Definition: vkd3d_shader.h:581
unsigned int flags
A combination of zero or more elements of vkd3d_shader_binding_flag.
Definition: vkd3d_shader.h:594
enum vkd3d_shader_visibility shader_visibility
Shader stage(s) to which the resource is visible.
Definition: vkd3d_shader.h:592
A chained structure containing compilation parameters.
Definition: vkd3d_shader.h:890
const struct vkd3d_shader_compile_option * options
Pointer to an array of compilation options.
Definition: vkd3d_shader.h:918
struct vkd3d_shader_code source
Input source code or byte code.
Definition: vkd3d_shader.h:901
enum vkd3d_shader_log_level log_level
Minimum severity of messages returned from the shader function.
Definition: vkd3d_shader.h:923
enum vkd3d_shader_structure_type type
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO.
Definition: vkd3d_shader.h:892
const char * source_name
Name of the initial source file, which may be used in error messages or debug information.
Definition: vkd3d_shader.h:928
unsigned int option_count
Size, in elements, of options.
Definition: vkd3d_shader.h:920
enum vkd3d_shader_source_type source_type
Format of the input code passed in source.
Definition: vkd3d_shader.h:904
const void * next
Optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:898
enum vkd3d_shader_target_type target_type
Desired output format.
Definition: vkd3d_shader.h:906
Various settings which may affect shader compilation or scanning, passed as part of struct vkd3d_shad...
Definition: vkd3d_shader.h:353
unsigned int value
A value associated with the option.
Definition: vkd3d_shader.h:360
enum vkd3d_shader_compile_option_name name
Name of the option.
Definition: vkd3d_shader.h:355
A common structure describing the bind point of a descriptor or descriptor array in the target enviro...
Definition: vkd3d_shader.h:432
unsigned int binding
The binding index of the descriptor.
Definition: vkd3d_shader.h:439
unsigned int count
The size of this descriptor array.
Definition: vkd3d_shader.h:445
unsigned int set
The set of the descriptor.
Definition: vkd3d_shader.h:437
Describes a single shader descriptor; returned as part of struct vkd3d_shader_scan_descriptor_info.
Definition: vkd3d_shader.h:1515
enum vkd3d_shader_resource_type resource_type
Resource type, if applicable, including its dimension.
Definition: vkd3d_shader.h:1526
unsigned int register_index
Register index of the descriptor.
Definition: vkd3d_shader.h:1524
enum vkd3d_shader_resource_data_type resource_data_type
Data type contained in the resource (for example, float or integer).
Definition: vkd3d_shader.h:1528
enum vkd3d_shader_descriptor_type type
Type of the descriptor (for example, SRV, CBV, UAV, or sampler).
Definition: vkd3d_shader.h:1517
unsigned int count
Size of this descriptor array, or 1 if a single descriptor.
Definition: vkd3d_shader.h:1538
unsigned int flags
Bitwise combination of zero or more members of vkd3d_shader_descriptor_info_flag.
Definition: vkd3d_shader.h:1533
unsigned int register_space
Register space of the resource, or 0 if the shader does not support multiple register spaces.
Definition: vkd3d_shader.h:1522
A chained structure containing descriptor offsets.
Definition: vkd3d_shader.h:730
const void * next
Optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:734
const struct vkd3d_shader_descriptor_offset * uav_counter_offsets
Pointer to an array of offsets into the descriptor arrays referenced by the 'uav_counters' array in s...
Definition: vkd3d_shader.h:793
enum vkd3d_shader_structure_type type
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_DESCRIPTOR_OFFSET_INFO.
Definition: vkd3d_shader.h:732
unsigned int descriptor_table_offset
Byte offset within the push constants of an array of 32-bit descriptor array offsets.
Definition: vkd3d_shader.h:741
unsigned int descriptor_table_count
Size, in elements, of the descriptor table push constant array.
Definition: vkd3d_shader.h:743
const struct vkd3d_shader_descriptor_offset * binding_offsets
Pointer to an array of struct vkd3d_shader_descriptor_offset objects.
Definition: vkd3d_shader.h:786
Definition: vkd3d_shader.h:713
Definition: vkd3d_shader.h:1360
Definition: vkd3d_shader.h:1262
A description of a DXBC blob, as returned by vkd3d_shader_parse_dxbc().
Definition: vkd3d_shader.h:1813
size_t section_count
The number of sections contained in the DXBC.
Definition: vkd3d_shader.h:1829
struct vkd3d_shader_dxbc_section_desc * sections
Descriptions of the sections contained in the DXBC.
Definition: vkd3d_shader.h:1831
uint32_t tag
The DXBC tag.
Definition: vkd3d_shader.h:1818
size_t size
The total size of the DXBC blob.
Definition: vkd3d_shader.h:1827
uint32_t checksum[4]
A checksum of the DXBC contents.
Definition: vkd3d_shader.h:1820
unsigned int version
The DXBC version.
Definition: vkd3d_shader.h:1825
A description of a DXBC section.
Definition: vkd3d_shader.h:1800
uint32_t tag
The section tag.
Definition: vkd3d_shader.h:1802
struct vkd3d_shader_code data
The contents of the section.
Definition: vkd3d_shader.h:1804
A chained structure containing HLSL compilation parameters.
Definition: vkd3d_shader.h:1146
enum vkd3d_shader_structure_type type
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_HLSL_SOURCE_INFO.
Definition: vkd3d_shader.h:1148
const char * profile
Pointer to a null-terminated string containing the target shader profile.
Definition: vkd3d_shader.h:1164
const char * entry_point
Optional pointer to a null-terminated string containing the shader entry point.
Definition: vkd3d_shader.h:1158
const void * next
Optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:1150
A chained structure describing the interface between a compiled shader and the target environment.
Definition: vkd3d_shader.h:663
unsigned int combined_sampler_count
Size, in elements, of combined_samplers.
Definition: vkd3d_shader.h:682
const struct vkd3d_shader_resource_binding * bindings
Pointer to an array of bindings for shader resource descriptors.
Definition: vkd3d_shader.h:670
const struct vkd3d_shader_push_constant_buffer * push_constant_buffers
Pointer to an array of bindings for push constant buffers.
Definition: vkd3d_shader.h:675
const struct vkd3d_shader_uav_counter_binding * uav_counters
Pointer to an array of bindings for UAV counters.
Definition: vkd3d_shader.h:685
unsigned int binding_count
Size, in elements, of bindings.
Definition: vkd3d_shader.h:672
unsigned int push_constant_buffer_count
Size, in elements, of push_constant_buffers.
Definition: vkd3d_shader.h:677
const void * next
Optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:667
const struct vkd3d_shader_combined_resource_sampler * combined_samplers
Pointer to an array of bindings for combined samplers.
Definition: vkd3d_shader.h:680
enum vkd3d_shader_structure_type type
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_INTERFACE_INFO.
Definition: vkd3d_shader.h:665
unsigned int uav_counter_count
Size, in elements, of uav_counters.
Definition: vkd3d_shader.h:687
A single preprocessor macro, passed as part of struct vkd3d_shader_preprocess_info.
Definition: vkd3d_shader.h:1014
const char * name
Pointer to a null-terminated string containing the name of a macro.
Definition: vkd3d_shader.h:1020
const char * value
Optional pointer to a null-terminated string containing the expansion of the macro.
Definition: vkd3d_shader.h:1026
Definition: vkd3d_shader.h:490
Definition: vkd3d_shader.h:495
A chained structure containing preprocessing parameters.
Definition: vkd3d_shader.h:1086
enum vkd3d_shader_structure_type type
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_PREPROCESS_INFO.
Definition: vkd3d_shader.h:1088
const struct vkd3d_shader_macro * macros
Pointer to an array of predefined macros.
Definition: vkd3d_shader.h:1100
void * include_context
User-defined pointer which will be passed unmodified to the pfn_open_include and pfn_close_include ca...
Definition: vkd3d_shader.h:1131
unsigned int macro_count
Size, in elements, of macros.
Definition: vkd3d_shader.h:1102
PFN_vkd3d_shader_open_include pfn_open_include
Optional pointer to a callback function, which will be called in order to evaluate #include directive...
Definition: vkd3d_shader.h:1116
PFN_vkd3d_shader_close_include pfn_close_include
Optional pointer to a callback function, which will be called whenever an included file is closed.
Definition: vkd3d_shader.h:1126
const void * next
Optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:1090
Describes the mapping of a Direct3D constant buffer to a range of push constants in the target enviro...
Definition: vkd3d_shader.h:629
unsigned int register_index
Register index of the Direct3D resource.
Definition: vkd3d_shader.h:636
unsigned int size
Size, in bytes, of the target push constants.
Definition: vkd3d_shader.h:643
unsigned int register_space
Register space of the Direct3D resource.
Definition: vkd3d_shader.h:634
enum vkd3d_shader_visibility shader_visibility
Shader stage(s) to which the resource is visible.
Definition: vkd3d_shader.h:638
unsigned int offset
Offset, in bytes, of the target push constants.
Definition: vkd3d_shader.h:641
Describes the mapping of a single resource or resource array to its binding point in the target envir...
Definition: vkd3d_shader.h:541
struct vkd3d_shader_descriptor_binding binding
The binding in the target environment.
Definition: vkd3d_shader.h:564
unsigned int register_space
Register space of the Direct3D resource.
Definition: vkd3d_shader.h:548
enum vkd3d_shader_descriptor_type type
The type of this descriptor.
Definition: vkd3d_shader.h:543
unsigned int flags
A combination of zero or more elements of vkd3d_shader_binding_flag.
Definition: vkd3d_shader.h:561
unsigned int register_index
Register index of the Direct3D resource.
Definition: vkd3d_shader.h:557
enum vkd3d_shader_visibility shader_visibility
Shader stage(s) to which the resource is visible.
Definition: vkd3d_shader.h:559
Definition: vkd3d_shader.h:1277
Definition: vkd3d_shader.h:1376
Definition: vkd3d_shader.h:1370
Definition: vkd3d_shader.h:1271
Definition: vkd3d_shader.h:1284
Definition: vkd3d_shader.h:1383
Definition: vkd3d_shader.h:1301
Definition: vkd3d_shader.h:1395
Definition: vkd3d_shader.h:1327
A chained structure describing the resource-sampler pairs used by a shader.
Definition: vkd3d_shader.h:1624
enum vkd3d_shader_structure_type type
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_SCAN_COMBINED_RESOURCE_SAMPLER_INFO.
Definition: vkd3d_shader.h:1626
const void * next
Optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:1628
unsigned int combined_sampler_count
The number of resource-sampler pairs in combined_samplers.
Definition: vkd3d_shader.h:1633
struct vkd3d_shader_combined_resource_sampler_info * combined_samplers
Pointer to an array of resource-sampler pairs.
Definition: vkd3d_shader.h:1631
A chained structure enumerating the descriptors declared by a shader.
Definition: vkd3d_shader.h:1575
enum vkd3d_shader_structure_type type
Input; must be set to VKD3D_SHADER_STRUCTURE_TYPE_SCAN_DESCRIPTOR_INFO.
Definition: vkd3d_shader.h:1579
const void * next
Input; optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:1581
unsigned int descriptor_count
Output; size, in elements, of descriptors.
Definition: vkd3d_shader.h:1586
struct vkd3d_shader_descriptor_info * descriptors
Output; returns a pointer to an array of descriptors.
Definition: vkd3d_shader.h:1584
A chained structure containing descriptions of shader inputs and outputs.
Definition: vkd3d_shader.h:1913
const void * next
Optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:1917
enum vkd3d_shader_structure_type type
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_SCAN_SIGNATURE_INFO.
Definition: vkd3d_shader.h:1915
struct vkd3d_shader_signature patch_constant
The shader patch constant varyings.
Definition: vkd3d_shader.h:1926
struct vkd3d_shader_signature output
The shader output varyings.
Definition: vkd3d_shader.h:1923
struct vkd3d_shader_signature input
The shader input varyings.
Definition: vkd3d_shader.h:1920
A single shader varying, returned as part of struct vkd3d_shader_signature.
Definition: vkd3d_shader.h:1736
unsigned int semantic_index
Semantic index, or 0 if the semantic is not indexed.
Definition: vkd3d_shader.h:1740
enum vkd3d_shader_sysval_semantic sysval_semantic
System value semantic.
Definition: vkd3d_shader.h:1750
unsigned int stream_index
Stream index of a geometry shader output semantic.
Definition: vkd3d_shader.h:1745
unsigned int used_mask
Subset of mask which the shader reads from or writes to.
Definition: vkd3d_shader.h:1763
enum vkd3d_shader_component_type component_type
Data type.
Definition: vkd3d_shader.h:1752
enum vkd3d_shader_minimum_precision min_precision
Minimum interpolation precision.
Definition: vkd3d_shader.h:1765
unsigned int register_index
Register index.
Definition: vkd3d_shader.h:1754
unsigned int mask
Mask of the register components allocated to this varying.
Definition: vkd3d_shader.h:1756
const char * semantic_name
Semantic name.
Definition: vkd3d_shader.h:1738
Description of a shader input or output signature.
Definition: vkd3d_shader.h:1776
struct vkd3d_shader_signature_element * elements
Pointer to an array of varyings.
Definition: vkd3d_shader.h:1778
unsigned int element_count
Size, in elements, of elements.
Definition: vkd3d_shader.h:1780
Definition: vkd3d_shader.h:1001
Definition: vkd3d_shader.h:960
Definition: vkd3d_shader.h:1245
Describes the mapping of a single Direct3D UAV counter.
Definition: vkd3d_shader.h:606
enum vkd3d_shader_visibility shader_visibility
Shader stage(s) to which the UAV counter is visible.
Definition: vkd3d_shader.h:615
unsigned int register_space
Register space of the Direct3D UAV descriptor.
Definition: vkd3d_shader.h:611
struct vkd3d_shader_descriptor_binding binding
The binding in the target environment.
Definition: vkd3d_shader.h:618
unsigned int register_index
Register index of the Direct3D UAV descriptor.
Definition: vkd3d_shader.h:613
A chained structure which describes how output varyings in this shader stage should be mapped to inpu...
Definition: vkd3d_shader.h:1975
unsigned int varying_count
The number of registers provided in varying_map.
Definition: vkd3d_shader.h:1994
enum vkd3d_shader_structure_type type
Must be set to VKD3D_SHADER_STRUCTURE_TYPE_VARYING_MAP_INFO.
Definition: vkd3d_shader.h:1977
const void * next
Optional pointer to a structure containing further parameters.
Definition: vkd3d_shader.h:1979
const struct vkd3d_shader_varying_map * varying_map
A mapping of output varyings in this shader stage to input varyings in the next shader stage.
Definition: vkd3d_shader.h:1992
Describes the mapping of a output varying register in a shader stage, to an input varying register in...
Definition: vkd3d_shader.h:1936
unsigned int input_register_index
The register index of the input varying to map this register to.
Definition: vkd3d_shader.h:1945
unsigned int input_mask
The mask consumed by the destination register.
Definition: vkd3d_shader.h:1947
unsigned int output_signature_index
The signature index (in the output signature) of the output varying.
Definition: vkd3d_shader.h:1943
Definition: vkd3d_shader.h:1412
VKD3D_SHADER_API enum vkd3d_shader_target_type * vkd3d_shader_get_supported_target_types(enum vkd3d_shader_source_type source_type, unsigned int *count)
Returns the target types supported, with the given source type, by vkd3d_shader_compile().
vkd3d_shader_d3dbc_constant_register
Symbolic register indices for mapping uniform constant register sets in legacy Direct3D bytecode to c...
Definition: vkd3d_shader.h:516
@ VKD3D_SHADER_D3DBC_BOOL_CONSTANT_REGISTER
The boolean constant register set, b# in Direct3D assembly.
Definition: vkd3d_shader.h:522
@ VKD3D_SHADER_D3DBC_FLOAT_CONSTANT_REGISTER
The float constant register set, c# in Direct3D assembly.
Definition: vkd3d_shader.h:518
@ VKD3D_SHADER_D3DBC_INT_CONSTANT_REGISTER
The integer constant register set, i# in Direct3D assembly.
Definition: vkd3d_shader.h:520
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)
Find a single element of a parsed input signature.
vkd3d_shader_compile_option_name
Definition: vkd3d_shader.h:247
@ VKD3D_SHADER_COMPILE_OPTION_WARN_IMPLICIT_TRUNCATION
If value is nonzero, emit a compile warning warn when vectors or matrices are truncated in an implici...
Definition: vkd3d_shader.h:334
@ VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV
value is a member of enum vkd3d_shader_compile_option_typed_uav.
Definition: vkd3d_shader.h:263
@ VKD3D_SHADER_COMPILE_OPTION_BACKWARD_COMPATIBILITY
This option is used to enable various backward compatibility features.
Definition: vkd3d_shader.h:292
@ VKD3D_SHADER_COMPILE_OPTION_PACK_MATRIX_ORDER
This option specifies default matrix packing order for HLSL sources.
Definition: vkd3d_shader.h:284
@ VKD3D_SHADER_COMPILE_OPTION_CHILD_EFFECT
If value is non-zero compilation will produce a child effect using shared object descriptions,...
Definition: vkd3d_shader.h:323
@ VKD3D_SHADER_COMPILE_OPTION_API_VERSION
value is a member of enum vkd3d_shader_api_version.
Definition: vkd3d_shader.h:261
@ VKD3D_SHADER_COMPILE_OPTION_WRITE_TESS_GEOM_POINT_SIZE
If value is nonzero, write the point size for Vulkan tessellation and geometry shaders.
Definition: vkd3d_shader.h:275
@ VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV
value is a member of enum vkd3d_shader_compile_option_buffer_uav.
Definition: vkd3d_shader.h:257
@ VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN
This option specifies the origin of fragment coordinates for SPIR-V targets.
Definition: vkd3d_shader.h:302
@ VKD3D_SHADER_COMPILE_OPTION_FEATURE
This option specifies the shader features available in the target environment.
Definition: vkd3d_shader.h:312
@ VKD3D_SHADER_COMPILE_OPTION_STRIP_DEBUG
If value is nonzero, do not include debug information in the compiled shader.
Definition: vkd3d_shader.h:255
@ VKD3D_SHADER_COMPILE_OPTION_INCLUDE_EMPTY_BUFFERS_IN_EFFECTS
If value is nonzero, empty constant buffers descriptions are written out in the output effect binary.
Definition: vkd3d_shader.h:342
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING
value is a member of enum vkd3d_shader_compile_option_formatting_flags.
Definition: vkd3d_shader.h:259
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)
Build a vkd3d-shader swizzle with the given components.
Definition: vkd3d_shader.h:1861
vkd3d_shader_compile_option_formatting_flags
Definition: vkd3d_shader.h:146
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_IO_SIGNATURES
Emit the signatures when disassembling a shader.
Definition: vkd3d_shader.h:158
void(* PFN_vkd3d_shader_free_dxbc)(struct vkd3d_shader_dxbc_desc *dxbc)
Type of vkd3d_shader_free_dxbc().
Definition: vkd3d_shader.h:2623
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)
Type of vkd3d_shader_convert_root_signature().
Definition: vkd3d_shader.h:2596
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)
Type of vkd3d_shader_build_varying_map().
Definition: vkd3d_shader.h:2632
vkd3d_shader_resource_data_type
The type of the data contained in a shader resource, returned as part of struct vkd3d_shader_descript...
Definition: vkd3d_shader.h:1461
@ VKD3D_SHADER_RESOURCE_DATA_DOUBLE
IEEE double-precision floating-point.
Definition: vkd3d_shader.h:1475
@ VKD3D_SHADER_RESOURCE_DATA_MIXED
Undefined/type-less.
Definition: vkd3d_shader.h:1473
@ VKD3D_SHADER_RESOURCE_DATA_SNORM
Signed normalized integer.
Definition: vkd3d_shader.h:1465
@ VKD3D_SHADER_RESOURCE_DATA_CONTINUED
Continuation of the previous component.
Definition: vkd3d_shader.h:1481
@ VKD3D_SHADER_RESOURCE_DATA_UINT
Unsigned integer.
Definition: vkd3d_shader.h:1469
@ VKD3D_SHADER_RESOURCE_DATA_FLOAT
IEEE single-precision floating-point.
Definition: vkd3d_shader.h:1471
@ VKD3D_SHADER_RESOURCE_DATA_UNORM
Unsigned normalized integer.
Definition: vkd3d_shader.h:1463
@ VKD3D_SHADER_RESOURCE_DATA_INT
Signed integer.
Definition: vkd3d_shader.h:1467
int(* PFN_vkd3d_shader_open_include)(const char *filename, bool local, const char *parent_data, void *context, struct vkd3d_shader_code *out)
Type of a callback function which will be used to open preprocessor includes.
Definition: vkd3d_shader.h:1057
vkd3d_shader_compile_option_fragment_coordinate_origin
Determines the origin of fragment coordinates.
Definition: vkd3d_shader.h:197
@ VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN_LOWER_LEFT
Fragment coordinates originate from the lower-left.
Definition: vkd3d_shader.h:203
@ VKD3D_SHADER_COMPILE_OPTION_FRAGMENT_COORDINATE_ORIGIN_UPPER_LEFT
Fragment coordinates originate from the upper-left.
Definition: vkd3d_shader.h:200
VKD3D_SHADER_API void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code)
Free shader code allocated by another vkd3d-shader function, such as vkd3d_shader_compile().
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)
Build a mapping of output varyings in a shader stage to input varyings in the following shader stage.
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)
Type of vkd3d_shader_serialize_dxbc().
Definition: vkd3d_shader.h:2628
void(* PFN_vkd3d_shader_close_include)(const struct vkd3d_shader_code *code, void *context)
Type of a callback function which will be used to close preprocessor includes.
Definition: vkd3d_shader.h:1072
vkd3d_shader_descriptor_info_flag
Additional flags describing a shader descriptor, returned as part of struct vkd3d_shader_descriptor_i...
Definition: vkd3d_shader.h:1491
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_RAW_BUFFER
The descriptor is a raw (byte-addressed) buffer.
Definition: vkd3d_shader.h:1505
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_READ
The descriptor is a UAV resource, which is read from by the shader.
Definition: vkd3d_shader.h:1498
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS
The descriptor is a UAV resource, on which the shader performs atomic ops.
Definition: vkd3d_shader.h:1503
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_COUNTER
The descriptor is a UAV resource, whose counter is read from or written to by the shader.
Definition: vkd3d_shader.h:1496
@ VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_SAMPLER_COMPARISON_MODE
The descriptor is a comparison sampler.
Definition: vkd3d_shader.h:1500
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)
Convert a structural description of a shader root signature to a byte code format capable of being re...
VKD3D_SHADER_API int vkd3d_shader_parse_input_signature(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_signature *signature, char **messages)
Read the input signature of a compiled DXBC shader, returning a structural description which can be e...
vkd3d_shader_compile_option_backward_compatibility
Individual options to enable various backward compatibility features.
Definition: vkd3d_shader.h:174
@ VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_MAP_SEMANTIC_NAMES
Causes compiler to convert SM1-3 semantics to corresponding System Value semantics,...
Definition: vkd3d_shader.h:186
void(* PFN_vkd3d_shader_free_shader_signature)(struct vkd3d_shader_signature *signature)
Type of vkd3d_shader_free_shader_signature().
Definition: vkd3d_shader.h:2613
int(* PFN_vkd3d_shader_scan)(const struct vkd3d_shader_compile_info *compile_info, char **messages)
Type of vkd3d_shader_scan().
Definition: vkd3d_shader.h:2600
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)
Convert a byte code description of a shader root signature to a structural description which can be e...
void(* PFN_vkd3d_shader_free_root_signature)(struct vkd3d_shader_versioned_root_signature_desc *root_signature)
Type of vkd3d_shader_free_root_signature().
Definition: vkd3d_shader.h:2588
vkd3d_shader_sysval_semantic
System value semantic, returned as part of struct vkd3d_shader_signature.
Definition: vkd3d_shader.h:1662
@ VKD3D_SHADER_SV_VERTEX_ID
Vertex ID; SV_VertexID in Direct3D.
Definition: vkd3d_shader.h:1676
@ VKD3D_SHADER_SV_RENDER_TARGET_ARRAY_INDEX
Render target layer; SV_RenderTargetArrayIndex in Direct3D.
Definition: vkd3d_shader.h:1672
@ VKD3D_SHADER_SV_DEPTH_LESS_EQUAL
Depth, which is guaranteed to be less than or equal to the current depth; SV_DepthLessEqual in Direct...
Definition: vkd3d_shader.h:1706
@ VKD3D_SHADER_SV_PRIMITIVE_ID
Primtive ID; SV_PrimitiveID in Direct3D.
Definition: vkd3d_shader.h:1678
@ VKD3D_SHADER_SV_COVERAGE
Sample mask; SV_Coverage in Direct3D.
Definition: vkd3d_shader.h:1696
@ VKD3D_SHADER_SV_CULL_DISTANCE
Cull distance; SV_CullDistance in Direct3D.
Definition: vkd3d_shader.h:1670
@ VKD3D_SHADER_SV_DEPTH
Depth; SV_Depth in Direct3D.
Definition: vkd3d_shader.h:1694
@ VKD3D_SHADER_SV_TARGET
Render target; SV_Target in Direct3D.
Definition: vkd3d_shader.h:1692
@ VKD3D_SHADER_SV_NONE
No system value.
Definition: vkd3d_shader.h:1664
@ VKD3D_SHADER_SV_IS_FRONT_FACE
Whether the triangle is front-facing; SV_IsFrontFace in Direct3D.
Definition: vkd3d_shader.h:1682
@ VKD3D_SHADER_SV_VIEWPORT_ARRAY_INDEX
Viewport index; SV_ViewportArrayIndex in Direct3D.
Definition: vkd3d_shader.h:1674
@ VKD3D_SHADER_SV_DEPTH_GREATER_EQUAL
Depth, which is guaranteed to be greater than or equal to the current depth; SV_DepthGreaterEqual in ...
Definition: vkd3d_shader.h:1701
@ VKD3D_SHADER_SV_INSTANCE_ID
Instance ID; SV_InstanceID in Direct3D.
Definition: vkd3d_shader.h:1680
@ VKD3D_SHADER_SV_CLIP_DISTANCE
Clip distance; SV_ClipDistance in Direct3D.
Definition: vkd3d_shader.h:1668
@ VKD3D_SHADER_SV_SAMPLE_INDEX
Sample index; SV_SampleIndex in Direct3D.
Definition: vkd3d_shader.h:1684
@ VKD3D_SHADER_SV_STENCIL_REF
Stencil reference; SV_StencilRef in Direct3D.
Definition: vkd3d_shader.h:1708
@ VKD3D_SHADER_SV_POSITION
Vertex position; SV_Position in Direct3D.
Definition: vkd3d_shader.h:1666
vkd3d_shader_source_type
The format of a shader to be compiled or scanned.
Definition: vkd3d_shader.h:798
@ VKD3D_SHADER_SOURCE_DXBC_DXIL
A 'DirectX Intermediate Language' shader embedded in a DXBC container.
Definition: vkd3d_shader.h:820
@ VKD3D_SHADER_SOURCE_D3D_BYTECODE
Legacy Direct3D byte-code.
Definition: vkd3d_shader.h:815
@ VKD3D_SHADER_SOURCE_HLSL
High-Level Shader Language source code.
Definition: vkd3d_shader.h:810
@ VKD3D_SHADER_SOURCE_DXBC_TPF
A 'Tokenized Program Format' shader embedded in a DXBC container.
Definition: vkd3d_shader.h:808
@ VKD3D_SHADER_SOURCE_NONE
The shader has no type or is to be ignored.
Definition: vkd3d_shader.h:803
VKD3D_SHADER_API void vkd3d_shader_free_shader_signature(struct vkd3d_shader_signature *signature)
Free a structural representation of a shader input signature allocated by vkd3d_shader_parse_input_si...
vkd3d_shader_parse_dxbc_flags
Flags for vkd3d_shader_parse_dxbc().
Definition: vkd3d_shader.h:238
@ VKD3D_SHADER_PARSE_DXBC_IGNORE_CHECKSUM
Ignore the checksum and continue parsing even if it is incorrect.
Definition: vkd3d_shader.h:241
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)
Serialize a DXBC description into a blob stored in a vkd3d_shader_code structure.
vkd3d_shader_log_level
Describes the minimum severity of compilation messages returned by vkd3d_shader_compile() and similar...
Definition: vkd3d_shader.h:871
@ VKD3D_SHADER_LOG_NONE
No messages will be returned.
Definition: vkd3d_shader.h:873
@ VKD3D_SHADER_LOG_ERROR
Only fatal errors which prevent successful compilation will be returned.
Definition: vkd3d_shader.h:875
@ VKD3D_SHADER_LOG_WARNING
Non-fatal warnings and fatal errors will be returned.
Definition: vkd3d_shader.h:877
@ VKD3D_SHADER_LOG_INFO
All messages, including general informational messages, will be returned.
Definition: vkd3d_shader.h:881
VKD3D_SHADER_API int vkd3d_shader_scan(const struct vkd3d_shader_compile_info *compile_info, char **messages)
Parse shader source code or byte code, returning various types of requested information.
vkd3d_shader_structure_type
The type of a chained structure.
Definition: vkd3d_shader.h:64
@ VKD3D_SHADER_STRUCTURE_TYPE_TRANSFORM_FEEDBACK_INFO
The structure is a vkd3d_shader_transform_feedback_info structure.
Definition: vkd3d_shader.h:76
@ VKD3D_SHADER_STRUCTURE_TYPE_SCAN_COMBINED_RESOURCE_SAMPLER_INFO
The structure is a vkd3d_shader_scan_combined_resource_sampler_info structure.
Definition: vkd3d_shader.h:107
@ VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_INFO
The structure is a vkd3d_shader_compile_info structure.
Definition: vkd3d_shader.h:66
@ VKD3D_SHADER_STRUCTURE_TYPE_SCAN_DESCRIPTOR_INFO
The structure is a vkd3d_shader_scan_descriptor_info structure.
Definition: vkd3d_shader.h:70
@ VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_DOMAIN_SHADER_TARGET_INFO
The structure is a vkd3d_shader_spirv_domain_shader_target_info structure.
Definition: vkd3d_shader.h:72
@ VKD3D_SHADER_STRUCTURE_TYPE_DESCRIPTOR_OFFSET_INFO
The structure is a vkd3d_shader_descriptor_offset_info structure.
Definition: vkd3d_shader.h:92
@ VKD3D_SHADER_STRUCTURE_TYPE_SCAN_SIGNATURE_INFO
The structure is a vkd3d_shader_scan_signature_info structure.
Definition: vkd3d_shader.h:97
@ VKD3D_SHADER_STRUCTURE_TYPE_PREPROCESS_INFO
The structure is a vkd3d_shader_preprocess_info structure.
Definition: vkd3d_shader.h:87
@ VKD3D_SHADER_STRUCTURE_TYPE_INTERFACE_INFO
The structure is a vkd3d_shader_interface_info structure.
Definition: vkd3d_shader.h:68
@ VKD3D_SHADER_STRUCTURE_TYPE_VARYING_MAP_INFO
The structure is a vkd3d_shader_varying_map_info structure.
Definition: vkd3d_shader.h:102
@ VKD3D_SHADER_STRUCTURE_TYPE_SPIRV_TARGET_INFO
The structure is a vkd3d_shader_spirv_target_info structure.
Definition: vkd3d_shader.h:74
@ VKD3D_SHADER_STRUCTURE_TYPE_HLSL_SOURCE_INFO
The structure is a vkd3d_shader_hlsl_source_info structure.
Definition: vkd3d_shader.h:82
vkd3d_shader_visibility
Describes which shader stages a resource is visible to.
Definition: vkd3d_shader.h:365
@ VKD3D_SHADER_VISIBILITY_DOMAIN
The resource is visible only to the domain shader.
Definition: vkd3d_shader.h:373
@ VKD3D_SHADER_VISIBILITY_COMPUTE
The resource is visible only to the compute shader.
Definition: vkd3d_shader.h:380
@ VKD3D_SHADER_VISIBILITY_PIXEL
The resource is visible only to the pixel shader.
Definition: vkd3d_shader.h:377
@ VKD3D_SHADER_VISIBILITY_ALL
The resource is visible to all shader stages.
Definition: vkd3d_shader.h:367
@ VKD3D_SHADER_VISIBILITY_GEOMETRY
The resource is visible only to the geometry shader.
Definition: vkd3d_shader.h:375
@ VKD3D_SHADER_VISIBILITY_VERTEX
The resource is visible only to the vertex shader.
Definition: vkd3d_shader.h:369
@ VKD3D_SHADER_VISIBILITY_HULL
The resource is visible only to the hull shader.
Definition: vkd3d_shader.h:371
VKD3D_SHADER_API void vkd3d_shader_free_scan_combined_resource_sampler_info(struct vkd3d_shader_scan_combined_resource_sampler_info *info)
Free members of struct vkd3d_shader_scan_combined_resource_sampler_info allocated by vkd3d_shader_sca...
vkd3d_shader_spirv_extension
Definition: vkd3d_shader.h:943
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_FRAGMENT_SHADER_INTERLOCK
Definition: vkd3d_shader.h:953
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_STENCIL_EXPORT
Definition: vkd3d_shader.h:949
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER
Definition: vkd3d_shader.h:951
@ VKD3D_SHADER_SPIRV_EXTENSION_EXT_DESCRIPTOR_INDEXING
Definition: vkd3d_shader.h:947
vkd3d_shader_api_version
Definition: vkd3d_shader.h:44
vkd3d_shader_component_type
Data type of a shader varying, returned as part of struct vkd3d_shader_signature_element.
Definition: vkd3d_shader.h:1641
@ VKD3D_SHADER_COMPONENT_INT
32-bit signed integer.
Definition: vkd3d_shader.h:1647
@ VKD3D_SHADER_COMPONENT_UINT
32-bit unsigned integer.
Definition: vkd3d_shader.h:1645
@ VKD3D_SHADER_COMPONENT_DOUBLE
64-bit IEEE floating-point.
Definition: vkd3d_shader.h:1653
@ VKD3D_SHADER_COMPONENT_UINT64
64-bit unsigned integer.
Definition: vkd3d_shader.h:1655
@ VKD3D_SHADER_COMPONENT_FLOAT
32-bit IEEE floating-point.
Definition: vkd3d_shader.h:1649
@ VKD3D_SHADER_COMPONENT_VOID
The varying has no type.
Definition: vkd3d_shader.h:1643
@ VKD3D_SHADER_COMPONENT_BOOL
Boolean.
Definition: vkd3d_shader.h:1651
vkd3d_shader_descriptor_type
The type of a shader resource descriptor.
Definition: vkd3d_shader.h:402
@ VKD3D_SHADER_DESCRIPTOR_TYPE_UAV
The descriptor is an unordered access view.
Definition: vkd3d_shader.h:412
@ VKD3D_SHADER_DESCRIPTOR_TYPE_CBV
The descriptor is a constant buffer view.
Definition: vkd3d_shader.h:417
@ VKD3D_SHADER_DESCRIPTOR_TYPE_SAMPLER
The descriptor is a sampler.
Definition: vkd3d_shader.h:422
@ VKD3D_SHADER_DESCRIPTOR_TYPE_SRV
The descriptor is a shader resource view.
Definition: vkd3d_shader.h:407
#define VKD3D_SHADER_SWIZZLE_MASK
A mask selecting one component from a vkd3d-shader swizzle.
Definition: vkd3d_shader.h:1838
vkd3d_shader_resource_type
The type of a shader resource, returned as part of struct vkd3d_shader_descriptor_info.
Definition: vkd3d_shader.h:1426
@ VKD3D_SHADER_RESOURCE_NONE
The type is invalid or not applicable for this descriptor.
Definition: vkd3d_shader.h:1431
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DARRAY
2-dimensional array texture.
Definition: vkd3d_shader.h:1447
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DMS
Multisampled 2-dimensional texture.
Definition: vkd3d_shader.h:1439
@ VKD3D_SHADER_RESOURCE_TEXTURE_3D
3-dimensional texture.
Definition: vkd3d_shader.h:1441
@ VKD3D_SHADER_RESOURCE_TEXTURE_1DARRAY
1-dimensional array texture.
Definition: vkd3d_shader.h:1445
@ VKD3D_SHADER_RESOURCE_BUFFER
Dimensionless buffer.
Definition: vkd3d_shader.h:1433
@ VKD3D_SHADER_RESOURCE_TEXTURE_CUBE
Cubemap texture.
Definition: vkd3d_shader.h:1443
@ VKD3D_SHADER_RESOURCE_TEXTURE_1D
1-dimensional texture.
Definition: vkd3d_shader.h:1435
@ VKD3D_SHADER_RESOURCE_TEXTURE_CUBEARRAY
Cubemap array texture.
Definition: vkd3d_shader.h:1451
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY
Multisampled 2-dimensional array texture.
Definition: vkd3d_shader.h:1449
@ VKD3D_SHADER_RESOURCE_TEXTURE_2D
2-dimensional texture.
Definition: vkd3d_shader.h:1437
VKD3D_SHADER_API void vkd3d_shader_free_dxbc(struct vkd3d_shader_dxbc_desc *dxbc)
Free the contents of a vkd3d_shader_dxbc_desc structure allocated by another vkd3d-shader function,...
VKD3D_SHADER_API const char * vkd3d_shader_get_version(unsigned int *major, unsigned int *minor)
Returns the current version of this library.
VKD3D_SHADER_API void vkd3d_shader_set_log_callback(PFN_vkd3d_log callback)
Set a callback to be called when vkd3d-shader outputs debug logging.
int(* PFN_vkd3d_shader_parse_root_signature)(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_versioned_root_signature_desc *root_signature, char **messages)
Type of vkd3d_shader_parse_root_signature().
Definition: vkd3d_shader.h:2585
VKD3D_SHADER_API void vkd3d_shader_free_scan_signature_info(struct vkd3d_shader_scan_signature_info *info)
Free members of struct vkd3d_shader_scan_signature_info allocated by vkd3d_shader_scan().
int(* PFN_vkd3d_shader_serialize_root_signature)(const struct vkd3d_shader_versioned_root_signature_desc *root_signature, struct vkd3d_shader_code *dxbc, char **messages)
Type of vkd3d_shader_serialize_root_signature().
Definition: vkd3d_shader.h:2591
vkd3d_shader_compile_option_typed_uav
Determines how typed UAVs are declared.
Definition: vkd3d_shader.h:133
@ VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV_READ_FORMAT_UNKNOWN
Use Unknown format for UAVs which are read from.
Definition: vkd3d_shader.h:140
@ VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV_READ_FORMAT_R32
Use R32(u)i/R32f format for UAVs which are read from.
Definition: vkd3d_shader.h:135
VKD3D_SHADER_API enum vkd3d_shader_source_type * vkd3d_shader_get_supported_source_types(unsigned int *count)
Returns the source types supported, with any target type, by vkd3d_shader_compile().
int(* PFN_vkd3d_shader_parse_dxbc)(const struct vkd3d_shader_code *dxbc, uint32_t flags, struct vkd3d_shader_dxbc_desc *desc, char **messages)
Type of vkd3d_shader_parse_dxbc().
Definition: vkd3d_shader.h:2625
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)
Parse a DXBC blob contained in a vkd3d_shader_code structure.
vkd3d_shader_swizzle_component
Possible values for a single component of a vkd3d-shader swizzle.
Definition: vkd3d_shader.h:1785
VKD3D_SHADER_API int vkd3d_shader_compile(const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
Transform a form of GPU shader source code or byte code into another form of source code or byte code...
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)
Convert a structural representation of a root signature to a different version of structural represen...
int(* PFN_vkd3d_shader_compile)(const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
Type of vkd3d_shader_compile().
Definition: vkd3d_shader.h:2577
void(* PFN_vkd3d_shader_free_scan_descriptor_info)(struct vkd3d_shader_scan_descriptor_info *scan_descriptor_info)
Type of vkd3d_shader_free_scan_descriptor_info().
Definition: vkd3d_shader.h:2602
vkd3d_shader_descriptor_range_flags
Definition: vkd3d_shader.h:1347
@ VKD3D_SHADER_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS
Definition: vkd3d_shader.h:1354
VKD3D_SHADER_API int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
Preprocess the given source code.
#define VKD3D_SHADER_SWIZZLE_SHIFT(idx)
The offset, in bits, of the nth parameter of a vkd3d-shader swizzle.
Definition: vkd3d_shader.h:1840
void(* PFN_vkd3d_shader_free_messages)(char *messages)
Type of vkd3d_shader_free_messages().
Definition: vkd3d_shader.h:2580
vkd3d_shader_minimum_precision
Minimum interpolation precision of a shader varying, returned as part of struct vkd3d_shader_signatur...
Definition: vkd3d_shader.h:1718
@ VKD3D_SHADER_MINIMUM_PRECISION_UINT_16
16-bit unsigned integer.
Definition: vkd3d_shader.h:1727
@ VKD3D_SHADER_MINIMUM_PRECISION_FIXED_8_2
10-bit fixed point (2 integer and 8 fractional bits).
Definition: vkd3d_shader.h:1723
@ VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_16
16-bit floating-point.
Definition: vkd3d_shader.h:1721
@ VKD3D_SHADER_MINIMUM_PRECISION_INT_16
16-bit signed integer.
Definition: vkd3d_shader.h:1725
void(* PFN_vkd3d_shader_free_scan_signature_info)(struct vkd3d_shader_scan_signature_info *info)
Type of vkd3d_shader_free_scan_signature_info().
Definition: vkd3d_shader.h:2636
int(* PFN_vkd3d_shader_parse_input_signature)(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_signature *signature, char **messages)
Type of vkd3d_shader_parse_input_signature().
Definition: vkd3d_shader.h:2606
VKD3D_SHADER_API void vkd3d_shader_free_scan_descriptor_info(struct vkd3d_shader_scan_descriptor_info *scan_descriptor_info)
Free members of struct vkd3d_shader_scan_descriptor_info() allocated by vkd3d_shader_scan().
void(* PFN_vkd3d_shader_preprocess)(struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, char **messages)
Type of vkd3d_shader_preprocess().
Definition: vkd3d_shader.h:2616
vkd3d_shader_target_type
The output format of a compiled shader.
Definition: vkd3d_shader.h:827
@ VKD3D_SHADER_TARGET_SPIRV_BINARY
A SPIR-V shader in binary form.
Definition: vkd3d_shader.h:837
@ VKD3D_SHADER_TARGET_D3D_ASM
Direct3D shader assembly.
Definition: vkd3d_shader.h:842
@ VKD3D_SHADER_TARGET_NONE
The shader has no type or is to be ignored.
Definition: vkd3d_shader.h:832
@ VKD3D_SHADER_TARGET_DXBC_TPF
A 'Tokenized Program Format' shader embedded in a DXBC container.
Definition: vkd3d_shader.h:852
@ VKD3D_SHADER_TARGET_GLSL
An 'OpenGL Shading Language' shader.
Definition: vkd3d_shader.h:856
@ VKD3D_SHADER_TARGET_D3D_BYTECODE
Legacy Direct3D byte-code.
Definition: vkd3d_shader.h:847
@ VKD3D_SHADER_TARGET_FX
Binary format used by Direct3D 9/10.x/11 effects profiles.
Definition: vkd3d_shader.h:861
void(* PFN_vkd3d_shader_free_shader_code)(struct vkd3d_shader_code *code)
Type of vkd3d_shader_free_shader_code().
Definition: vkd3d_shader.h:2582
vkd3d_shader_compile_option_pack_matrix_order
Determines how matrices are stored.
Definition: vkd3d_shader.h:165
vkd3d_shader_spirv_environment
Definition: vkd3d_shader.h:932
@ VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_1
Definition: vkd3d_shader.h:937
vkd3d_shader_compile_option_feature_flags
Advertises feature availability.
Definition: vkd3d_shader.h:210
@ VKD3D_SHADER_COMPILE_OPTION_FEATURE_WAVE_OPS
The SPIR-V target environment supports wave operations.
Definition: vkd3d_shader.h:227
@ VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64
The SPIR-V target environment supports 64-bit integer types.
Definition: vkd3d_shader.h:214
@ VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64
The SPIR-V target environment supports 64-bit floating-point types.
Definition: vkd3d_shader.h:218
void(* PFN_vkd3d_shader_set_log_callback)(PFN_vkd3d_log callback)
Type of vkd3d_shader_set_log_callback().
Definition: vkd3d_shader.h:2620
VKD3D_SHADER_API void vkd3d_shader_free_messages(char *messages)
Free shader messages allocated by another vkd3d-shader function, such as vkd3d_shader_compile().
void(* PFN_vkd3d_shader_free_scan_combined_resource_sampler_info)(struct vkd3d_shader_scan_combined_resource_sampler_info *info)
Type of vkd3d_shader_free_scan_combined_resource_sampler_info().
Definition: vkd3d_shader.h:2639
VKD3D_SHADER_API void vkd3d_shader_free_root_signature(struct vkd3d_shader_versioned_root_signature_desc *root_signature)
Free a structural representation of a shader root signature allocated by vkd3d_shader_convert_root_si...
vkd3d_shader_compile_option_buffer_uav
Determines how buffer UAVs are stored.
Definition: vkd3d_shader.h:119
@ VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV_STORAGE_TEXEL_BUFFER
Use buffer textures for buffer UAVs.
Definition: vkd3d_shader.h:121
@ VKD3D_SHADER_COMPILE_OPTION_BUFFER_UAV_STORAGE_BUFFER
Use storage buffers for buffer UAVs.
Definition: vkd3d_shader.h:123
This file contains definitions for basic types used by vkd3d libraries.