mirror of
https://github.com/KhronosGroup/Vulkan-Headers
synced 2024-11-21 06:26:00 -07:00
Update for Vulkan-Docs 1.2.197
This commit is contained in:
parent
d594f70127
commit
51a326d756
19 changed files with 6943 additions and 1365 deletions
|
@ -14,170 +14,182 @@ extern "C" {
|
|||
#include "vk_video/vulkan_video_codecs_common.h"
|
||||
|
||||
// Vulkan 0.9 provisional Vulkan video H.264 encode and decode std specification version number
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H264_API_VERSION_0_9 VK_MAKE_VIDEO_STD_VERSION(0, 9, 0) // Patch version should always be set to 0
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H264_API_VERSION_0_9_5 VK_MAKE_VIDEO_STD_VERSION(0, 9, 5) // Patch version should always be set to 0
|
||||
|
||||
// Format must be in the form XX.XX where the first two digits are the major and the second two, the minor.
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H264_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_API_VERSION_0_9
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H264_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H264_API_VERSION_0_9_5
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H264_EXTENSION_NAME "VK_STD_vulkan_video_codec_h264"
|
||||
|
||||
// *************************************************
|
||||
// Video H.264 common definitions:
|
||||
// *************************************************
|
||||
|
||||
#define STD_VIDEO_H264_CPB_CNT_LIST_SIZE 32
|
||||
#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS 6
|
||||
#define STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS 16
|
||||
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS 2
|
||||
#define STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS 64
|
||||
|
||||
typedef enum StdVideoH264ChromaFormatIdc {
|
||||
std_video_h264_chroma_format_idc_monochrome = 0,
|
||||
std_video_h264_chroma_format_idc_420 = 1,
|
||||
std_video_h264_chroma_format_idc_422 = 2,
|
||||
std_video_h264_chroma_format_idc_444 = 3,
|
||||
STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME = 0,
|
||||
STD_VIDEO_H264_CHROMA_FORMAT_IDC_420 = 1,
|
||||
STD_VIDEO_H264_CHROMA_FORMAT_IDC_422 = 2,
|
||||
STD_VIDEO_H264_CHROMA_FORMAT_IDC_444 = 3,
|
||||
STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264ChromaFormatIdc;
|
||||
|
||||
typedef enum StdVideoH264ProfileIdc {
|
||||
std_video_h264_profile_idc_baseline = 66, /* Only constrained baseline is supported */
|
||||
std_video_h264_profile_idc_main = 77,
|
||||
std_video_h264_profile_idc_high = 100,
|
||||
std_video_h264_profile_idc_high_444_predictive = 244,
|
||||
std_video_h264_profile_idc_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_PROFILE_IDC_BASELINE = 66, /* Only constrained baseline is supported */
|
||||
STD_VIDEO_H264_PROFILE_IDC_MAIN = 77,
|
||||
STD_VIDEO_H264_PROFILE_IDC_HIGH = 100,
|
||||
STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE = 244,
|
||||
STD_VIDEO_H264_PROFILE_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264ProfileIdc;
|
||||
|
||||
typedef enum StdVideoH264Level {
|
||||
std_video_h264_level_1_0 = 0,
|
||||
std_video_h264_level_1_1 = 1,
|
||||
std_video_h264_level_1_2 = 2,
|
||||
std_video_h264_level_1_3 = 3,
|
||||
std_video_h264_level_2_0 = 4,
|
||||
std_video_h264_level_2_1 = 5,
|
||||
std_video_h264_level_2_2 = 6,
|
||||
std_video_h264_level_3_0 = 7,
|
||||
std_video_h264_level_3_1 = 8,
|
||||
std_video_h264_level_3_2 = 9,
|
||||
std_video_h264_level_4_0 = 10,
|
||||
std_video_h264_level_4_1 = 11,
|
||||
std_video_h264_level_4_2 = 12,
|
||||
std_video_h264_level_5_0 = 13,
|
||||
std_video_h264_level_5_1 = 14,
|
||||
std_video_h264_level_5_2 = 15,
|
||||
std_video_h264_level_6_0 = 16,
|
||||
std_video_h264_level_6_1 = 17,
|
||||
std_video_h264_level_6_2 = 18,
|
||||
std_video_h264_level_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_LEVEL_1_0 = 0,
|
||||
STD_VIDEO_H264_LEVEL_1_1 = 1,
|
||||
STD_VIDEO_H264_LEVEL_1_2 = 2,
|
||||
STD_VIDEO_H264_LEVEL_1_3 = 3,
|
||||
STD_VIDEO_H264_LEVEL_2_0 = 4,
|
||||
STD_VIDEO_H264_LEVEL_2_1 = 5,
|
||||
STD_VIDEO_H264_LEVEL_2_2 = 6,
|
||||
STD_VIDEO_H264_LEVEL_3_0 = 7,
|
||||
STD_VIDEO_H264_LEVEL_3_1 = 8,
|
||||
STD_VIDEO_H264_LEVEL_3_2 = 9,
|
||||
STD_VIDEO_H264_LEVEL_4_0 = 10,
|
||||
STD_VIDEO_H264_LEVEL_4_1 = 11,
|
||||
STD_VIDEO_H264_LEVEL_4_2 = 12,
|
||||
STD_VIDEO_H264_LEVEL_5_0 = 13,
|
||||
STD_VIDEO_H264_LEVEL_5_1 = 14,
|
||||
STD_VIDEO_H264_LEVEL_5_2 = 15,
|
||||
STD_VIDEO_H264_LEVEL_6_0 = 16,
|
||||
STD_VIDEO_H264_LEVEL_6_1 = 17,
|
||||
STD_VIDEO_H264_LEVEL_6_2 = 18,
|
||||
STD_VIDEO_H264_LEVEL_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264Level;
|
||||
|
||||
typedef enum StdVideoH264PocType {
|
||||
std_video_h264_poc_type_0 = 0,
|
||||
std_video_h264_poc_type_1 = 1,
|
||||
std_video_h264_poc_type_2 = 2,
|
||||
std_video_h264_poc_type_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_POC_TYPE_0 = 0,
|
||||
STD_VIDEO_H264_POC_TYPE_1 = 1,
|
||||
STD_VIDEO_H264_POC_TYPE_2 = 2,
|
||||
STD_VIDEO_H264_POC_TYPE_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264PocType;
|
||||
|
||||
typedef enum StdVideoH264AspectRatioIdc {
|
||||
std_video_h264_aspect_ratio_idc_unspecified = 0,
|
||||
std_video_h264_aspect_ratio_idc_square = 1,
|
||||
std_video_h264_aspect_ratio_idc_12_11 = 2,
|
||||
std_video_h264_aspect_ratio_idc_10_11 = 3,
|
||||
std_video_h264_aspect_ratio_idc_16_11 = 4,
|
||||
std_video_h264_aspect_ratio_idc_40_33 = 5,
|
||||
std_video_h264_aspect_ratio_idc_24_11 = 6,
|
||||
std_video_h264_aspect_ratio_idc_20_11 = 7,
|
||||
std_video_h264_aspect_ratio_idc_32_11 = 8,
|
||||
std_video_h264_aspect_ratio_idc_80_33 = 9,
|
||||
std_video_h264_aspect_ratio_idc_18_11 = 10,
|
||||
std_video_h264_aspect_ratio_idc_15_11 = 11,
|
||||
std_video_h264_aspect_ratio_idc_64_33 = 12,
|
||||
std_video_h264_aspect_ratio_idc_160_99 = 13,
|
||||
std_video_h264_aspect_ratio_idc_4_3 = 14,
|
||||
std_video_h264_aspect_ratio_idc_3_2 = 15,
|
||||
std_video_h264_aspect_ratio_idc_2_1 = 16,
|
||||
std_video_h264_aspect_ratio_idc_extended_sar = 255,
|
||||
std_video_h264_aspect_ratio_idc_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED = 0,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE = 1,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11 = 2,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11 = 3,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11 = 4,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33 = 5,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11 = 6,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11 = 7,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11 = 8,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33 = 9,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11 = 10,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11 = 11,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33 = 12,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99 = 13,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3 = 14,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2 = 15,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1 = 16,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR = 255,
|
||||
STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264AspectRatioIdc;
|
||||
|
||||
typedef enum StdVideoH264WeightedBiPredIdc {
|
||||
std_video_h264_default_weighted_b_slices_prediction_idc = 0,
|
||||
std_video_h264_explicit_weighted_b_slices_prediction_idc = 1,
|
||||
std_video_h264_implicit_weighted_b_slices_prediction_idc = 2,
|
||||
std_video_h264_invalid_weighted_b_slices_prediction_idc = 0x7FFFFFFF
|
||||
} StdVideoH264WeightedBiPredIdc;
|
||||
typedef enum StdVideoH264WeightedBipredIdc {
|
||||
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT = 0,
|
||||
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT = 1,
|
||||
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT = 2,
|
||||
STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264WeightedBipredIdc;
|
||||
|
||||
typedef enum StdVideoH264ModificationOfPicNumsIdc {
|
||||
std_video_h264_modification_of_pic_nums_idc_short_term_subtract = 0,
|
||||
std_video_h264_modification_of_pic_nums_idc_short_term_add = 1,
|
||||
std_video_h264_modification_of_pic_nums_idc_long_term = 2,
|
||||
std_video_h264_modification_of_pic_nums_idc_end = 3,
|
||||
std_video_h264_modification_of_pic_nums_idc_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT = 0,
|
||||
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD = 1,
|
||||
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM = 2,
|
||||
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END = 3,
|
||||
STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264ModificationOfPicNumsIdc;
|
||||
|
||||
typedef enum StdVideoH264MemMgmtControlOp {
|
||||
std_video_h264_mem_mgmt_control_op_end = 0,
|
||||
std_video_h264_mem_mgmt_control_op_unmark_short_term = 1,
|
||||
std_video_h264_mem_mgmt_control_op_unmark_long_term = 2,
|
||||
std_video_h264_mem_mgmt_control_op_mark_long_term = 3,
|
||||
std_video_h264_mem_mgmt_control_op_set_max_long_term_index = 4,
|
||||
std_video_h264_mem_mgmt_control_op_unmark_all = 5,
|
||||
std_video_h264_mem_mgmt_control_op_mark_current_as_long_term = 6,
|
||||
std_video_h264_mem_mgmt_control_op_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END = 0,
|
||||
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM = 1,
|
||||
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM = 2,
|
||||
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM = 3,
|
||||
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX = 4,
|
||||
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL = 5,
|
||||
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM = 6,
|
||||
STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264MemMgmtControlOp;
|
||||
|
||||
typedef enum StdVideoH264CabacInitIdc {
|
||||
std_video_h264_cabac_init_idc_0 = 0,
|
||||
std_video_h264_cabac_init_idc_1 = 1,
|
||||
std_video_h264_cabac_init_idc_2 = 2,
|
||||
std_video_h264_cabac_init_idc_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_CABAC_INIT_IDC_0 = 0,
|
||||
STD_VIDEO_H264_CABAC_INIT_IDC_1 = 1,
|
||||
STD_VIDEO_H264_CABAC_INIT_IDC_2 = 2,
|
||||
STD_VIDEO_H264_CABAC_INIT_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264CabacInitIdc;
|
||||
|
||||
typedef enum StdVideoH264DisableDeblockingFilterIdc {
|
||||
std_video_h264_disable_deblocking_filter_idc_disabled = 0,
|
||||
std_video_h264_disable_deblocking_filter_idc_enabled = 1,
|
||||
std_video_h264_disable_deblocking_filter_idc_partial = 2,
|
||||
std_video_h264_disable_deblocking_filter_idc_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED = 0,
|
||||
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED = 1,
|
||||
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL = 2,
|
||||
STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264DisableDeblockingFilterIdc;
|
||||
|
||||
typedef enum StdVideoH264PictureType {
|
||||
std_video_h264_picture_type_i = 0,
|
||||
std_video_h264_picture_type_p = 1,
|
||||
std_video_h264_picture_type_b = 2,
|
||||
std_video_h264_picture_type_invalid = 0x7FFFFFFF
|
||||
} StdVideoH264PictureType;
|
||||
|
||||
typedef enum StdVideoH264SliceType {
|
||||
std_video_h264_slice_type_i = 0,
|
||||
std_video_h264_slice_type_p = 1,
|
||||
std_video_h264_slice_type_b = 2,
|
||||
std_video_h264_slice_type_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_SLICE_TYPE_P = 0,
|
||||
STD_VIDEO_H264_SLICE_TYPE_B = 1,
|
||||
STD_VIDEO_H264_SLICE_TYPE_I = 2,
|
||||
// reserved STD_VIDEO_H264_SLICE_TYPE_SP = 3,
|
||||
// reserved STD_VIDEO_H264_SLICE_TYPE_SI = 4,
|
||||
STD_VIDEO_H264_SLICE_TYPE_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264SliceType;
|
||||
|
||||
typedef enum StdVideoH264PictureType {
|
||||
STD_VIDEO_H264_PICTURE_TYPE_P = 0,
|
||||
STD_VIDEO_H264_PICTURE_TYPE_B = 1,
|
||||
STD_VIDEO_H264_PICTURE_TYPE_I = 2,
|
||||
// reserved STD_VIDEO_H264_PICTURE_TYPE_SP = 3,
|
||||
// reserved STD_VIDEO_H264_PICTURE_TYPE_SI = 4,
|
||||
STD_VIDEO_H264_PICTURE_TYPE_IDR = 5,
|
||||
STD_VIDEO_H264_PICTURE_TYPE_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264PictureType;
|
||||
|
||||
typedef enum StdVideoH264NonVclNaluType {
|
||||
std_video_h264_non_vcl_nalu_type_sps = 0,
|
||||
std_video_h264_non_vcl_nalu_type_pps = 1,
|
||||
std_video_h264_non_vcl_nalu_type_aud = 2,
|
||||
std_video_h264_non_vcl_nalu_type_prefix = 3,
|
||||
std_video_h264_non_vcl_nalu_type_end_of_sequence = 4,
|
||||
std_video_h264_non_vcl_nalu_type_end_of_stream = 5,
|
||||
std_video_h264_non_vcl_nalu_type_precoded = 6,
|
||||
std_video_h264_non_vcl_nalu_type_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS = 0,
|
||||
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS = 1,
|
||||
STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD = 2,
|
||||
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX = 3,
|
||||
STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE = 4,
|
||||
STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM = 5,
|
||||
STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED = 6,
|
||||
STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH264NonVclNaluType;
|
||||
|
||||
typedef struct StdVideoH264SpsVuiFlags {
|
||||
uint32_t aspect_ratio_info_present_flag:1;
|
||||
uint32_t overscan_info_present_flag:1;
|
||||
uint32_t overscan_appropriate_flag:1;
|
||||
uint32_t video_signal_type_present_flag:1;
|
||||
uint32_t video_full_range_flag:1;
|
||||
uint32_t color_description_present_flag:1;
|
||||
uint32_t chroma_loc_info_present_flag:1;
|
||||
uint32_t timing_info_present_flag:1;
|
||||
uint32_t fixed_frame_rate_flag:1;
|
||||
uint32_t bitstream_restriction_flag:1;
|
||||
uint32_t nal_hrd_parameters_present_flag:1;
|
||||
uint32_t vcl_hrd_parameters_present_flag:1;
|
||||
uint32_t aspect_ratio_info_present_flag : 1;
|
||||
uint32_t overscan_info_present_flag : 1;
|
||||
uint32_t overscan_appropriate_flag : 1;
|
||||
uint32_t video_signal_type_present_flag : 1;
|
||||
uint32_t video_full_range_flag : 1;
|
||||
uint32_t color_description_present_flag : 1;
|
||||
uint32_t chroma_loc_info_present_flag : 1;
|
||||
uint32_t timing_info_present_flag : 1;
|
||||
uint32_t fixed_frame_rate_flag : 1;
|
||||
uint32_t bitstream_restriction_flag : 1;
|
||||
uint32_t nal_hrd_parameters_present_flag : 1;
|
||||
uint32_t vcl_hrd_parameters_present_flag : 1;
|
||||
} StdVideoH264SpsVuiFlags;
|
||||
|
||||
typedef struct StdVideoH264HrdParameters {
|
||||
typedef struct StdVideoH264HrdParameters { // hrd_parameters
|
||||
uint8_t cpb_cnt_minus1;
|
||||
uint8_t bit_rate_scale;
|
||||
uint8_t cpb_size_scale;
|
||||
uint32_t bit_rate_value_minus1[32];
|
||||
uint32_t cpb_size_value_minus1[32];
|
||||
uint8_t cbr_flag[32];
|
||||
uint32_t bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; // cpb_cnt_minus1 number of valid elements
|
||||
uint32_t cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; // cpb_cnt_minus1 number of valid elements
|
||||
uint8_t cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE]; // cpb_cnt_minus1 number of valid elements
|
||||
uint32_t initial_cpb_removal_delay_length_minus1;
|
||||
uint32_t cpb_removal_delay_length_minus1;
|
||||
uint32_t dpb_output_delay_length_minus1;
|
||||
|
@ -194,30 +206,29 @@ typedef struct StdVideoH264SequenceParameterSetVui {
|
|||
uint8_t matrix_coefficients;
|
||||
uint32_t num_units_in_tick;
|
||||
uint32_t time_scale;
|
||||
StdVideoH264HrdParameters hrd_parameters;
|
||||
uint8_t num_reorder_frames;
|
||||
StdVideoH264HrdParameters* pHrdParameters; // must be a valid ptr to hrd_parameters, if nal_hrd_parameters_present_flag or vcl_hrd_parameters_present_flag are set
|
||||
uint8_t max_num_reorder_frames;
|
||||
uint8_t max_dec_frame_buffering;
|
||||
StdVideoH264SpsVuiFlags flags;
|
||||
} StdVideoH264SequenceParameterSetVui;
|
||||
|
||||
typedef struct StdVideoH264SpsFlags {
|
||||
uint32_t constraint_set0_flag:1;
|
||||
uint32_t constraint_set1_flag:1;
|
||||
uint32_t constraint_set2_flag:1;
|
||||
uint32_t constraint_set3_flag:1;
|
||||
uint32_t constraint_set4_flag:1;
|
||||
uint32_t constraint_set5_flag:1;
|
||||
uint32_t direct_8x8_inference_flag:1;
|
||||
uint32_t mb_adaptive_frame_field_flag:1;
|
||||
uint32_t frame_mbs_only_flag:1;
|
||||
uint32_t delta_pic_order_always_zero_flag:1;
|
||||
uint32_t residual_colour_transform_flag:1;
|
||||
uint32_t gaps_in_frame_num_value_allowed_flag:1;
|
||||
uint32_t first_picture_after_seek_flag:1; // where is this being documented?
|
||||
uint32_t qpprime_y_zero_transform_bypass_flag:1;
|
||||
uint32_t frame_cropping_flag:1;
|
||||
uint32_t scaling_matrix_present_flag:1;
|
||||
uint32_t vui_parameters_present_flag:1;
|
||||
uint32_t constraint_set0_flag : 1;
|
||||
uint32_t constraint_set1_flag : 1;
|
||||
uint32_t constraint_set2_flag : 1;
|
||||
uint32_t constraint_set3_flag : 1;
|
||||
uint32_t constraint_set4_flag : 1;
|
||||
uint32_t constraint_set5_flag : 1;
|
||||
uint32_t direct_8x8_inference_flag : 1;
|
||||
uint32_t mb_adaptive_frame_field_flag : 1;
|
||||
uint32_t frame_mbs_only_flag : 1;
|
||||
uint32_t delta_pic_order_always_zero_flag : 1;
|
||||
uint32_t separate_colour_plane_flag : 1;
|
||||
uint32_t gaps_in_frame_num_value_allowed_flag : 1;
|
||||
uint32_t qpprime_y_zero_transform_bypass_flag : 1;
|
||||
uint32_t frame_cropping_flag : 1;
|
||||
uint32_t seq_scaling_matrix_present_flag : 1;
|
||||
uint32_t vui_parameters_present_flag : 1;
|
||||
} StdVideoH264SpsFlags;
|
||||
|
||||
typedef struct StdVideoH264ScalingLists
|
||||
|
@ -234,8 +245,8 @@ typedef struct StdVideoH264ScalingLists
|
|||
// bit 0 - 5 are for each entry of ScalingList4x4
|
||||
// bit 6 - 7 are for each entry plus 6 for ScalingList8x8
|
||||
uint8_t use_default_scaling_matrix_mask;
|
||||
uint8_t ScalingList4x4[6][16];
|
||||
uint8_t ScalingList8x8[2][64];
|
||||
uint8_t ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS];
|
||||
uint8_t ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS];
|
||||
} StdVideoH264ScalingLists;
|
||||
|
||||
typedef struct StdVideoH264SequenceParameterSet
|
||||
|
@ -260,21 +271,23 @@ typedef struct StdVideoH264SequenceParameterSet
|
|||
uint32_t frame_crop_top_offset;
|
||||
uint32_t frame_crop_bottom_offset;
|
||||
StdVideoH264SpsFlags flags;
|
||||
int32_t offset_for_ref_frame[255]; // The number of valid values are defined by the num_ref_frames_in_pic_order_cnt_cycle
|
||||
StdVideoH264ScalingLists* pScalingLists; // Must be a valid pointer if scaling_matrix_present_flag is set
|
||||
// pOffsetForRefFrame is a pointer representing the offset_for_ref_frame array with num_ref_frames_in_pic_order_cnt_cycle number of elements
|
||||
// If pOffsetForRefFrame has nullptr value, then num_ref_frames_in_pic_order_cnt_cycle must also be "0".
|
||||
int32_t* pOffsetForRefFrame;
|
||||
StdVideoH264ScalingLists* pScalingLists; // Must be a valid pointer if seq_scaling_matrix_present_flag is set
|
||||
StdVideoH264SequenceParameterSetVui* pSequenceParameterSetVui; // Must be a valid pointer if StdVideoH264SpsFlags:vui_parameters_present_flag is set
|
||||
} StdVideoH264SequenceParameterSet;
|
||||
|
||||
typedef struct StdVideoH264PpsFlags {
|
||||
uint32_t transform_8x8_mode_flag:1;
|
||||
uint32_t redundant_pic_cnt_present_flag:1;
|
||||
uint32_t constrained_intra_pred_flag:1;
|
||||
uint32_t deblocking_filter_control_present_flag:1;
|
||||
uint32_t weighted_bipred_idc_flag:1;
|
||||
uint32_t weighted_pred_flag:1;
|
||||
uint32_t pic_order_present_flag:1;
|
||||
uint32_t entropy_coding_mode_flag:1;
|
||||
uint32_t scaling_matrix_present_flag:1;
|
||||
uint32_t transform_8x8_mode_flag : 1;
|
||||
uint32_t redundant_pic_cnt_present_flag : 1;
|
||||
uint32_t constrained_intra_pred_flag : 1;
|
||||
uint32_t deblocking_filter_control_present_flag : 1;
|
||||
uint32_t weighted_bipred_idc_flag : 1;
|
||||
uint32_t weighted_pred_flag : 1;
|
||||
uint32_t pic_order_present_flag : 1;
|
||||
uint32_t entropy_coding_mode_flag : 1;
|
||||
uint32_t pic_scaling_matrix_present_flag : 1;
|
||||
} StdVideoH264PpsFlags;
|
||||
|
||||
typedef struct StdVideoH264PictureParameterSet
|
||||
|
@ -283,13 +296,13 @@ typedef struct StdVideoH264PictureParameterSet
|
|||
uint8_t pic_parameter_set_id;
|
||||
uint8_t num_ref_idx_l0_default_active_minus1;
|
||||
uint8_t num_ref_idx_l1_default_active_minus1;
|
||||
StdVideoH264WeightedBiPredIdc weighted_bipred_idc;
|
||||
StdVideoH264WeightedBipredIdc weighted_bipred_idc;
|
||||
int8_t pic_init_qp_minus26;
|
||||
int8_t pic_init_qs_minus26;
|
||||
int8_t chroma_qp_index_offset;
|
||||
int8_t second_chroma_qp_index_offset;
|
||||
StdVideoH264PpsFlags flags;
|
||||
StdVideoH264ScalingLists* pScalingLists; // Must be a valid pointer if StdVideoH264PpsFlags::scaling_matrix_present_flag is set.
|
||||
StdVideoH264ScalingLists* pScalingLists; // Must be a valid pointer if StdVideoH264PpsFlags::pic_scaling_matrix_present_flag is set.
|
||||
} StdVideoH264PictureParameterSet;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -17,12 +17,21 @@ extern "C" {
|
|||
// Video H.264 Decode related parameters:
|
||||
// *************************************************
|
||||
|
||||
#define STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE 15
|
||||
|
||||
typedef enum StdVideoDecodeH264FieldOrderCount {
|
||||
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP = 0,
|
||||
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM = 1,
|
||||
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE = 2,
|
||||
STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID = 0x7FFFFFFF
|
||||
} StdVideoDecodeH264FieldOrderCnt;
|
||||
|
||||
typedef struct StdVideoDecodeH264PictureInfoFlags {
|
||||
uint32_t field_pic_flag:1; // Is field picture
|
||||
uint32_t is_intra:1; // Is intra picture
|
||||
uint32_t bottom_field_flag:1; // bottom (true) or top (false) field if field_pic_flag is set.
|
||||
uint32_t is_reference:1; // This only applies to picture info, and not to the DPB lists.
|
||||
uint32_t complementary_field_pair:1; // complementary field pair, complementary non-reference field pair, complementary reference field pair
|
||||
uint32_t field_pic_flag : 1; // Is field picture
|
||||
uint32_t is_intra : 1; // Is intra picture
|
||||
uint32_t bottom_field_flag : 1; // bottom (true) or top (false) field if field_pic_flag is set.
|
||||
uint32_t is_reference : 1; // This only applies to picture info, and not to the DPB lists.
|
||||
uint32_t complementary_field_pair : 1; // complementary field pair, complementary non-reference field pair, complementary reference field pair
|
||||
} StdVideoDecodeH264PictureInfoFlags;
|
||||
|
||||
typedef struct StdVideoDecodeH264PictureInfo {
|
||||
|
@ -32,15 +41,15 @@ typedef struct StdVideoDecodeH264PictureInfo {
|
|||
uint16_t frame_num; // 7.4.3 Slice header semantics
|
||||
uint16_t idr_pic_id; // 7.4.3 Slice header semantics
|
||||
// PicOrderCnt is based on TopFieldOrderCnt and BottomFieldOrderCnt. See 8.2.1 Decoding process for picture order count type 0 - 2
|
||||
int32_t PicOrderCnt[2]; // TopFieldOrderCnt and BottomFieldOrderCnt fields.
|
||||
int32_t PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE]; // TopFieldOrderCnt and BottomFieldOrderCnt fields.
|
||||
StdVideoDecodeH264PictureInfoFlags flags;
|
||||
} StdVideoDecodeH264PictureInfo;
|
||||
|
||||
typedef struct StdVideoDecodeH264ReferenceInfoFlags {
|
||||
uint32_t top_field_flag:1; // Reference is used for top field reference.
|
||||
uint32_t bottom_field_flag:1; // Reference is used for bottom field reference.
|
||||
uint32_t is_long_term:1; // this is a long term reference
|
||||
uint32_t is_non_existing:1; // Must be handled in accordance with 8.2.5.2: Decoding process for gaps in frame_num
|
||||
uint32_t top_field_flag : 1; // Reference is used for top field reference.
|
||||
uint32_t bottom_field_flag : 1; // Reference is used for bottom field reference.
|
||||
uint32_t is_long_term : 1; // this is a long term reference
|
||||
uint32_t is_non_existing : 1; // Must be handled in accordance with 8.2.5.2: Decoding process for gaps in frame_num
|
||||
} StdVideoDecodeH264ReferenceInfoFlags;
|
||||
|
||||
typedef struct StdVideoDecodeH264ReferenceInfo {
|
||||
|
@ -52,9 +61,9 @@ typedef struct StdVideoDecodeH264ReferenceInfo {
|
|||
} StdVideoDecodeH264ReferenceInfo;
|
||||
|
||||
typedef struct StdVideoDecodeH264MvcElementFlags {
|
||||
uint32_t non_idr:1;
|
||||
uint32_t anchor_pic:1;
|
||||
uint32_t inter_view:1;
|
||||
uint32_t non_idr : 1;
|
||||
uint32_t anchor_pic : 1;
|
||||
uint32_t inter_view : 1;
|
||||
} StdVideoDecodeH264MvcElementFlags;
|
||||
|
||||
typedef struct StdVideoDecodeH264MvcElement {
|
||||
|
@ -64,13 +73,13 @@ typedef struct StdVideoDecodeH264MvcElement {
|
|||
uint16_t temporalId; // move out?
|
||||
uint16_t priorityId; // move out?
|
||||
uint16_t numOfAnchorRefsInL0;
|
||||
uint16_t viewIdOfAnchorRefsInL0[15];
|
||||
uint16_t viewIdOfAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
|
||||
uint16_t numOfAnchorRefsInL1;
|
||||
uint16_t viewIdOfAnchorRefsInL1[15];
|
||||
uint16_t viewIdOfAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
|
||||
uint16_t numOfNonAnchorRefsInL0;
|
||||
uint16_t viewIdOfNonAnchorRefsInL0[15];
|
||||
uint16_t viewIdOfNonAnchorRefsInL0[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
|
||||
uint16_t numOfNonAnchorRefsInL1;
|
||||
uint16_t viewIdOfNonAnchorRefsInL1[15];
|
||||
uint16_t viewIdOfNonAnchorRefsInL1[STD_VIDEO_DECODE_H264_MVC_REF_LIST_SIZE];
|
||||
} StdVideoDecodeH264MvcElement;
|
||||
|
||||
typedef struct StdVideoDecodeH264Mvc {
|
||||
|
|
|
@ -18,24 +18,24 @@ extern "C" {
|
|||
// *************************************************
|
||||
|
||||
typedef struct StdVideoEncodeH264SliceHeaderFlags {
|
||||
uint32_t idr_flag:1;
|
||||
uint32_t is_reference_flag:1;
|
||||
uint32_t num_ref_idx_active_override_flag:1;
|
||||
uint32_t no_output_of_prior_pics_flag:1;
|
||||
uint32_t long_term_reference_flag:1;
|
||||
uint32_t adaptive_ref_pic_marking_mode_flag:1;
|
||||
uint32_t no_prior_references_available_flag:1;
|
||||
uint32_t idr_flag : 1;
|
||||
uint32_t is_reference_flag : 1;
|
||||
uint32_t num_ref_idx_active_override_flag : 1;
|
||||
uint32_t no_output_of_prior_pics_flag : 1;
|
||||
uint32_t long_term_reference_flag : 1;
|
||||
uint32_t adaptive_ref_pic_marking_mode_flag : 1;
|
||||
uint32_t no_prior_references_available_flag : 1;
|
||||
} StdVideoEncodeH264SliceHeaderFlags;
|
||||
|
||||
typedef struct StdVideoEncodeH264PictureInfoFlags {
|
||||
uint32_t idr_flag:1;
|
||||
uint32_t is_reference_flag:1;
|
||||
uint32_t long_term_reference_flag:1;
|
||||
uint32_t idr_flag : 1;
|
||||
uint32_t is_reference_flag : 1;
|
||||
uint32_t long_term_reference_flag : 1;
|
||||
} StdVideoEncodeH264PictureInfoFlags;
|
||||
|
||||
typedef struct StdVideoEncodeH264RefMgmtFlags {
|
||||
uint32_t ref_pic_list_modification_l0_flag:1;
|
||||
uint32_t ref_pic_list_modification_l1_flag:1;
|
||||
uint32_t ref_pic_list_modification_l0_flag : 1;
|
||||
uint32_t ref_pic_list_modification_l1_flag : 1;
|
||||
} StdVideoEncodeH264RefMgmtFlags;
|
||||
|
||||
typedef struct StdVideoEncodeH264RefListModEntry {
|
||||
|
|
|
@ -14,72 +14,89 @@ extern "C" {
|
|||
#include "vk_video/vulkan_video_codecs_common.h"
|
||||
|
||||
// Vulkan 0.5 version number WIP
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H265_API_VERSION_0_5 VK_MAKE_VIDEO_STD_VERSION(0, 5, 0) // Patch version should always be set to 0
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H265_API_VERSION_0_9_5 VK_MAKE_VIDEO_STD_VERSION(0, 9, 5) // Patch version should always be set to 0
|
||||
|
||||
// Format must be in the form XX.XX where the first two digits are the major and the second two, the minor.
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H265_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_API_VERSION_0_5
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H265_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_H265_API_VERSION_0_9_5
|
||||
#define VK_STD_VULKAN_VIDEO_CODEC_H265_EXTENSION_NAME "VK_STD_vulkan_video_codec_h265"
|
||||
|
||||
#define STD_VIDEO_H265_CPB_CNT_LIST_SIZE 32
|
||||
#define STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE 7
|
||||
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS 6
|
||||
#define STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS 16
|
||||
#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS 6
|
||||
#define STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS 64
|
||||
#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS 6
|
||||
#define STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS 64
|
||||
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS 2
|
||||
#define STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS 64
|
||||
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE 6
|
||||
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE 19
|
||||
#define STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE 21
|
||||
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE 3
|
||||
#define STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE 128
|
||||
|
||||
typedef enum StdVideoH265ChromaFormatIdc {
|
||||
std_video_h265_chroma_format_idc_monochrome = 0,
|
||||
std_video_h265_chroma_format_idc_420 = 1,
|
||||
std_video_h265_chroma_format_idc_422 = 2,
|
||||
std_video_h265_chroma_format_idc_444 = 3,
|
||||
STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME = 0,
|
||||
STD_VIDEO_H265_CHROMA_FORMAT_IDC_420 = 1,
|
||||
STD_VIDEO_H265_CHROMA_FORMAT_IDC_422 = 2,
|
||||
STD_VIDEO_H265_CHROMA_FORMAT_IDC_444 = 3,
|
||||
STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH265ChromaFormatIdc;
|
||||
|
||||
typedef enum StdVideoH265ProfileIdc {
|
||||
std_video_h265_profile_idc_main = 1,
|
||||
std_video_h265_profile_idc_main_10 = 2,
|
||||
std_video_h265_profile_idc_main_still_picture = 3,
|
||||
std_video_h265_profile_idc_format_range_extensions = 4,
|
||||
std_video_h265_profile_idc_scc_extensions = 9,
|
||||
std_video_h265_profile_idc_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H265_PROFILE_IDC_MAIN = 1,
|
||||
STD_VIDEO_H265_PROFILE_IDC_MAIN_10 = 2,
|
||||
STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE = 3,
|
||||
STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS = 4,
|
||||
STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS = 9,
|
||||
STD_VIDEO_H265_PROFILE_IDC_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH265ProfileIdc;
|
||||
|
||||
typedef enum StdVideoH265Level {
|
||||
std_video_h265_level_1_0 = 0,
|
||||
std_video_h265_level_2_0 = 1,
|
||||
std_video_h265_level_2_1 = 2,
|
||||
std_video_h265_level_3_0 = 3,
|
||||
std_video_h265_level_3_1 = 4,
|
||||
std_video_h265_level_4_0 = 5,
|
||||
std_video_h265_level_4_1 = 6,
|
||||
std_video_h265_level_5_0 = 7,
|
||||
std_video_h265_level_5_1 = 8,
|
||||
std_video_h265_level_5_2 = 9,
|
||||
std_video_h265_level_6_0 = 10,
|
||||
std_video_h265_level_6_1 = 11,
|
||||
std_video_h265_level_6_2 = 12,
|
||||
std_video_h265_level_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H265_LEVEL_1_0 = 0,
|
||||
STD_VIDEO_H265_LEVEL_2_0 = 1,
|
||||
STD_VIDEO_H265_LEVEL_2_1 = 2,
|
||||
STD_VIDEO_H265_LEVEL_3_0 = 3,
|
||||
STD_VIDEO_H265_LEVEL_3_1 = 4,
|
||||
STD_VIDEO_H265_LEVEL_4_0 = 5,
|
||||
STD_VIDEO_H265_LEVEL_4_1 = 6,
|
||||
STD_VIDEO_H265_LEVEL_5_0 = 7,
|
||||
STD_VIDEO_H265_LEVEL_5_1 = 8,
|
||||
STD_VIDEO_H265_LEVEL_5_2 = 9,
|
||||
STD_VIDEO_H265_LEVEL_6_0 = 10,
|
||||
STD_VIDEO_H265_LEVEL_6_1 = 11,
|
||||
STD_VIDEO_H265_LEVEL_6_2 = 12,
|
||||
STD_VIDEO_H265_LEVEL_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH265Level;
|
||||
|
||||
typedef enum StdVideoH265SliceType {
|
||||
std_video_h265_slice_type_b = 0,
|
||||
std_video_h265_slice_type_p = 1,
|
||||
std_video_h265_slice_type_i = 2,
|
||||
std_video_h265_slice_type_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H265_SLICE_TYPE_B = 0,
|
||||
STD_VIDEO_H265_SLICE_TYPE_P = 1,
|
||||
STD_VIDEO_H265_SLICE_TYPE_I = 2,
|
||||
STD_VIDEO_H265_SLICE_TYPE_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH265SliceType;
|
||||
|
||||
typedef enum StdVideoH265PictureType {
|
||||
std_video_h265_picture_type_i = 0,
|
||||
std_video_h265_picture_type_p = 1,
|
||||
std_video_h265_picture_type_b = 2,
|
||||
std_video_h265_picture_type_idr = 3,
|
||||
std_video_h265_picture_type_invalid = 0x7FFFFFFF
|
||||
STD_VIDEO_H265_PICTURE_TYPE_P = 0,
|
||||
STD_VIDEO_H265_PICTURE_TYPE_B = 1,
|
||||
STD_VIDEO_H265_PICTURE_TYPE_I = 2,
|
||||
STD_VIDEO_H265_PICTURE_TYPE_IDR = 3,
|
||||
STD_VIDEO_H265_PICTURE_TYPE_INVALID = 0x7FFFFFFF
|
||||
} StdVideoH265PictureType;
|
||||
|
||||
typedef struct StdVideoH265DecPicBufMgr
|
||||
{
|
||||
uint32_t max_latency_increase_plus1[7];
|
||||
uint8_t max_dec_pic_buffering_minus1[7];
|
||||
uint8_t max_num_reorder_pics[7];
|
||||
uint32_t max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
|
||||
uint8_t max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
|
||||
uint8_t max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
|
||||
} StdVideoH265DecPicBufMgr;
|
||||
|
||||
typedef struct StdVideoH265SubLayerHrdParameters {
|
||||
uint32_t bit_rate_value_minus1[32];
|
||||
uint32_t cpb_size_value_minus1[32];
|
||||
uint32_t cpb_size_du_value_minus1[32];
|
||||
uint32_t bit_rate_du_value_minus1[32];
|
||||
typedef struct StdVideoH265SubLayerHrdParameters { // sub_layer_hrd_parameters
|
||||
uint32_t bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
|
||||
uint32_t cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
|
||||
uint32_t cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
|
||||
uint32_t bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
|
||||
uint32_t cbr_flag; // each bit represents a range of CpbCounts (bit 0 - cpb_cnt_minus1) per sub-layer
|
||||
} StdVideoH265SubLayerHrdParameters;
|
||||
|
||||
|
@ -88,9 +105,9 @@ typedef struct StdVideoH265HrdFlags {
|
|||
uint32_t vcl_hrd_parameters_present_flag : 1;
|
||||
uint32_t sub_pic_hrd_params_present_flag : 1;
|
||||
uint32_t sub_pic_cpb_params_in_pic_timing_sei_flag : 1;
|
||||
uint8_t fixed_pic_rate_general_flag; // each bit represents a sublayer, bit 0 - vps_max_sub_layers_minus1
|
||||
uint8_t fixed_pic_rate_within_cvs_flag; // each bit represents a sublayer, bit 0 - vps_max_sub_layers_minus1
|
||||
uint8_t low_delay_hrd_flag; // each bit represents a sublayer, bit 0 - vps_max_sub_layers_minus1
|
||||
uint32_t fixed_pic_rate_general_flag : 8; // each bit represents a sublayer, bit 0 - vps_max_sub_layers_minus1
|
||||
uint32_t fixed_pic_rate_within_cvs_flag : 8; // each bit represents a sublayer, bit 0 - vps_max_sub_layers_minus1
|
||||
uint32_t low_delay_hrd_flag : 8; // each bit represents a sublayer, bit 0 - vps_max_sub_layers_minus1
|
||||
} StdVideoH265HrdFlags;
|
||||
|
||||
typedef struct StdVideoH265HrdParameters {
|
||||
|
@ -103,10 +120,10 @@ typedef struct StdVideoH265HrdParameters {
|
|||
uint8_t initial_cpb_removal_delay_length_minus1;
|
||||
uint8_t au_cpb_removal_delay_length_minus1;
|
||||
uint8_t dpb_output_delay_length_minus1;
|
||||
uint8_t cpb_cnt_minus1[7];
|
||||
uint16_t elemental_duration_in_tc_minus1[7];
|
||||
StdVideoH265SubLayerHrdParameters* SubLayerHrdParametersNal[7];
|
||||
StdVideoH265SubLayerHrdParameters* SubLayerHrdParametersVcl[7];
|
||||
uint8_t cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
|
||||
uint16_t elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE];
|
||||
StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersNal[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; // NAL per layer ptr to sub_layer_hrd_parameters
|
||||
StdVideoH265SubLayerHrdParameters* pSubLayerHrdParametersVcl[STD_VIDEO_H265_SUBLAYERS_MINUS1_LIST_SIZE]; // VCL per layer ptr to sub_layer_hrd_parameters
|
||||
StdVideoH265HrdFlags flags;
|
||||
} StdVideoH265HrdParameters;
|
||||
|
||||
|
@ -125,18 +142,18 @@ typedef struct StdVideoH265VideoParameterSet
|
|||
uint32_t vps_time_scale;
|
||||
uint32_t vps_num_ticks_poc_diff_one_minus1;
|
||||
StdVideoH265DecPicBufMgr* pDecPicBufMgr;
|
||||
StdVideoH265HrdParameters* hrd_parameters;
|
||||
StdVideoH265HrdParameters* pHrdParameters;
|
||||
StdVideoH265VpsFlags flags;
|
||||
} StdVideoH265VideoParameterSet;
|
||||
|
||||
typedef struct StdVideoH265ScalingLists
|
||||
{
|
||||
uint8_t ScalingList4x4[6][16]; // ScalingList[ 0 ][ MatrixID ][ i ] (sizeID = 0)
|
||||
uint8_t ScalingList8x8[6][64]; // ScalingList[ 1 ][ MatrixID ][ i ] (sizeID = 1)
|
||||
uint8_t ScalingList16x16[6][64]; // ScalingList[ 2 ][ MatrixID ][ i ] (sizeID = 2)
|
||||
uint8_t ScalingList32x32[2][64]; // ScalingList[ 3 ][ MatrixID ][ i ] (sizeID = 3)
|
||||
uint8_t ScalingListDCCoef16x16[6]; // scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8, sizeID = 2
|
||||
uint8_t ScalingListDCCoef32x32[2]; // scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8. sizeID = 3
|
||||
uint8_t ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS]; // ScalingList[ 0 ][ MatrixID ][ i ] (sizeID = 0)
|
||||
uint8_t ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS]; // ScalingList[ 1 ][ MatrixID ][ i ] (sizeID = 1)
|
||||
uint8_t ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS]; // ScalingList[ 2 ][ MatrixID ][ i ] (sizeID = 2)
|
||||
uint8_t ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS]; // ScalingList[ 3 ][ MatrixID ][ i ] (sizeID = 3)
|
||||
uint8_t ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS]; // scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8, sizeID = 2
|
||||
uint8_t ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS]; // scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8. sizeID = 3
|
||||
} StdVideoH265ScalingLists;
|
||||
|
||||
typedef struct StdVideoH265SpsVuiFlags {
|
||||
|
@ -177,7 +194,7 @@ typedef struct StdVideoH265SequenceParameterSetVui {
|
|||
uint32_t vui_num_units_in_tick;
|
||||
uint32_t vui_time_scale;
|
||||
uint32_t vui_num_ticks_poc_diff_one_minus1;
|
||||
StdVideoH265HrdParameters* hrd_parameters;
|
||||
StdVideoH265HrdParameters* pHrdParameters;
|
||||
uint16_t min_spatial_segmentation_idc;
|
||||
uint8_t max_bytes_per_pic_denom;
|
||||
uint8_t max_bits_per_min_cu_denom;
|
||||
|
@ -188,10 +205,9 @@ typedef struct StdVideoH265SequenceParameterSetVui {
|
|||
|
||||
typedef struct StdVideoH265PredictorPaletteEntries
|
||||
{
|
||||
uint16_t PredictorPaletteEntries[3][128];
|
||||
uint16_t PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE];
|
||||
} StdVideoH265PredictorPaletteEntries;
|
||||
|
||||
|
||||
typedef struct StdVideoH265SpsFlags {
|
||||
uint32_t sps_temporal_id_nesting_flag : 1;
|
||||
uint32_t separate_colour_plane_flag : 1;
|
||||
|
@ -208,7 +224,7 @@ typedef struct StdVideoH265SpsFlags {
|
|||
uint32_t sps_extension_present_flag : 1;
|
||||
uint32_t sps_range_extension_flag : 1;
|
||||
|
||||
// extension SPS flags, valid when std_video_h265_profile_idc_format_range_extensions is set
|
||||
// extension SPS flags, valid when STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS is set
|
||||
uint32_t transform_skip_rotation_enabled_flag : 1;
|
||||
uint32_t transform_skip_context_enabled_flag : 1;
|
||||
uint32_t implicit_rdpcm_enabled_flag : 1;
|
||||
|
@ -219,7 +235,7 @@ typedef struct StdVideoH265SpsFlags {
|
|||
uint32_t persistent_rice_adaptation_enabled_flag : 1;
|
||||
uint32_t cabac_bypass_alignment_enabled_flag : 1;
|
||||
|
||||
// extension SPS flags, valid when std_video_h265_profile_idc_scc_extensions is set
|
||||
// extension SPS flags, valid when STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS is set
|
||||
uint32_t sps_curr_pic_ref_enabled_flag : 1;
|
||||
uint32_t palette_mode_enabled_flag : 1;
|
||||
uint32_t sps_palette_predictor_initializer_present_flag : 1;
|
||||
|
@ -261,7 +277,7 @@ typedef struct StdVideoH265SequenceParameterSet
|
|||
StdVideoH265ScalingLists* pScalingLists; // Must be a valid pointer if sps_scaling_list_data_present_flag is set
|
||||
StdVideoH265SequenceParameterSetVui* pSequenceParameterSetVui; // Must be a valid pointer if StdVideoH265SpsFlags:vui_parameters_present_flag is set palette_max_size;
|
||||
|
||||
// extension SPS flags, valid when std_video_h265_profile_idc_scc_extensions is set
|
||||
// extension SPS flags, valid when STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS is set
|
||||
uint8_t palette_max_size;
|
||||
uint8_t delta_palette_max_predictor_size;
|
||||
uint8_t motion_vector_resolution_control_idc;
|
||||
|
@ -295,11 +311,11 @@ typedef struct StdVideoH265PpsFlags {
|
|||
uint32_t slice_segment_header_extension_present_flag : 1;
|
||||
uint32_t pps_extension_present_flag : 1;
|
||||
|
||||
// extension PPS flags, valid when std_video_h265_profile_idc_format_range_extensions is set
|
||||
// extension PPS flags, valid when STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS is set
|
||||
uint32_t cross_component_prediction_enabled_flag : 1;
|
||||
uint32_t chroma_qp_offset_list_enabled_flag : 1;
|
||||
|
||||
// extension PPS flags, valid when std_video_h265_profile_idc_scc_extensions is set
|
||||
// extension PPS flags, valid when STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS is set
|
||||
uint32_t pps_curr_pic_ref_enabled_flag : 1;
|
||||
uint32_t residual_adaptive_colour_transform_enabled_flag : 1;
|
||||
uint32_t pps_slice_act_qp_offsets_present_flag : 1;
|
||||
|
@ -321,24 +337,24 @@ typedef struct StdVideoH265PictureParameterSet
|
|||
int8_t pps_cr_qp_offset;
|
||||
uint8_t num_tile_columns_minus1;
|
||||
uint8_t num_tile_rows_minus1;
|
||||
uint16_t column_width_minus1[19];
|
||||
uint16_t row_height_minus1[21];
|
||||
uint16_t column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
|
||||
uint16_t row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
|
||||
int8_t pps_beta_offset_div2;
|
||||
int8_t pps_tc_offset_div2;
|
||||
uint8_t log2_parallel_merge_level_minus2;
|
||||
StdVideoH265PpsFlags flags;
|
||||
StdVideoH265ScalingLists* pScalingLists; // Must be a valid pointer if pps_scaling_list_data_present_flag is set
|
||||
|
||||
// extension PPS, valid when std_video_h265_profile_idc_format_range_extensions is set
|
||||
// extension PPS, valid when STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS is set
|
||||
uint8_t log2_max_transform_skip_block_size_minus2;
|
||||
uint8_t diff_cu_chroma_qp_offset_depth;
|
||||
uint8_t chroma_qp_offset_list_len_minus1;
|
||||
int8_t cb_qp_offset_list[6];
|
||||
int8_t cr_qp_offset_list[6];
|
||||
int8_t cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
|
||||
int8_t cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
|
||||
uint8_t log2_sao_offset_scale_luma;
|
||||
uint8_t log2_sao_offset_scale_chroma;
|
||||
|
||||
// extension PPS, valid when std_video_h265_profile_idc_scc_extensions is set
|
||||
// extension PPS, valid when STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS is set
|
||||
int8_t pps_act_y_qp_offset_plus5;
|
||||
int8_t pps_act_cb_qp_offset_plus5;
|
||||
int8_t pps_act_cr_qp_offset_plus5;
|
||||
|
|
|
@ -17,6 +17,8 @@ extern "C" {
|
|||
// Video h265 Decode related parameters:
|
||||
// *************************************************
|
||||
|
||||
#define STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE 8
|
||||
|
||||
typedef struct StdVideoDecodeH265PictureInfoFlags {
|
||||
uint32_t IrapPicFlag : 1;
|
||||
uint32_t IdrPicFlag : 1;
|
||||
|
@ -33,11 +35,14 @@ typedef struct StdVideoDecodeH265PictureInfo {
|
|||
uint16_t NumBitsForSTRefPicSetInSlice; // number of bits used in st_ref_pic_set()
|
||||
//when short_term_ref_pic_set_sps_flag is 0; otherwise set to 0.
|
||||
uint8_t NumDeltaPocsOfRefRpsIdx; // NumDeltaPocs[ RefRpsIdx ] when short_term_ref_pic_set_sps_flag = 1, otherwise 0
|
||||
uint8_t RefPicSetStCurrBefore[8]; // slotIndex as used in VkVideoReferenceSlotKHR structures representing
|
||||
uint8_t RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; // slotIndex as used in
|
||||
// VkVideoReferenceSlotKHR structures representing
|
||||
//pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex
|
||||
uint8_t RefPicSetStCurrAfter[8]; // slotIndex as used in VkVideoReferenceSlotKHR structures representing
|
||||
uint8_t RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; // slotIndex as used in
|
||||
// VkVideoReferenceSlotKHR structures representing
|
||||
//pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex
|
||||
uint8_t RefPicSetLtCurr[8]; // slotIndex as used in VkVideoReferenceSlotKHR structures representing
|
||||
uint8_t RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE]; // slotIndex as used in
|
||||
// VkVideoReferenceSlotKHR structures representing
|
||||
//pReferenceSlots in VkVideoDecodeInfoKHR, 0xff for invalid slotIndex
|
||||
StdVideoDecodeH265PictureInfoFlags flags;
|
||||
} StdVideoDecodeH265PictureInfo;
|
||||
|
|
|
@ -17,6 +17,10 @@ extern "C" {
|
|||
// Video h265 Encode related parameters:
|
||||
// *************************************************
|
||||
|
||||
#define STD_VIDEO_ENCODE_H265_LUMA_LIST_SIZE 15
|
||||
#define STD_VIDEO_ENCODE_H265_CHROMA_LIST_SIZE 15
|
||||
#define STD_VIDEO_ENCODE_H265_CHROMA_LISTS_NUM 2
|
||||
|
||||
typedef struct StdVideoEncodeH265SliceHeaderFlags {
|
||||
uint32_t first_slice_segment_in_pic_flag : 1;
|
||||
uint32_t no_output_of_prior_pics_flag : 1;
|
||||
|
@ -32,6 +36,7 @@ typedef struct StdVideoEncodeH265SliceHeaderFlags {
|
|||
uint32_t collocated_from_l0_flag : 1;
|
||||
uint32_t slice_loop_filter_across_slices_enabled_flag : 1;
|
||||
uint32_t bLastSliceInPic : 1;
|
||||
uint32_t reservedBits : 18;
|
||||
uint16_t luma_weight_l0_flag; // bit 0 - num_ref_idx_l0_active_minus1
|
||||
uint16_t chroma_weight_l0_flag; // bit 0 - num_ref_idx_l0_active_minus1
|
||||
uint16_t luma_weight_l1_flag; // bit 0 - num_ref_idx_l1_active_minus1
|
||||
|
@ -51,14 +56,14 @@ typedef struct StdVideoEncodeH265SliceHeader {
|
|||
uint8_t num_ref_idx_l1_active_minus1; // [0, 14]
|
||||
uint8_t luma_log2_weight_denom; // [0, 7]
|
||||
int8_t delta_chroma_log2_weight_denom;
|
||||
int8_t delta_luma_weight_l0[15];
|
||||
int8_t luma_offset_l0[15];
|
||||
int8_t delta_chroma_weight_l0[15][2];
|
||||
int8_t delta_chroma_offset_l0[15][2];
|
||||
int8_t delta_luma_weight_l1[15];
|
||||
int8_t luma_offset_l1[15];
|
||||
int8_t delta_chroma_weight_l1[15][2];
|
||||
int8_t delta_chroma_offset_l1[15][2];
|
||||
int8_t delta_luma_weight_l0[STD_VIDEO_ENCODE_H265_LUMA_LIST_SIZE];
|
||||
int8_t luma_offset_l0[STD_VIDEO_ENCODE_H265_LUMA_LIST_SIZE];
|
||||
int8_t delta_chroma_weight_l0[STD_VIDEO_ENCODE_H265_CHROMA_LIST_SIZE][STD_VIDEO_ENCODE_H265_CHROMA_LISTS_NUM];
|
||||
int8_t delta_chroma_offset_l0[STD_VIDEO_ENCODE_H265_CHROMA_LIST_SIZE][STD_VIDEO_ENCODE_H265_CHROMA_LISTS_NUM];
|
||||
int8_t delta_luma_weight_l1[STD_VIDEO_ENCODE_H265_LUMA_LIST_SIZE];
|
||||
int8_t luma_offset_l1[STD_VIDEO_ENCODE_H265_LUMA_LIST_SIZE];
|
||||
int8_t delta_chroma_weight_l1[STD_VIDEO_ENCODE_H265_CHROMA_LIST_SIZE][STD_VIDEO_ENCODE_H265_CHROMA_LISTS_NUM];
|
||||
int8_t delta_chroma_offset_l1[STD_VIDEO_ENCODE_H265_CHROMA_LIST_SIZE][STD_VIDEO_ENCODE_H265_CHROMA_LISTS_NUM];
|
||||
uint8_t MaxNumMergeCand;
|
||||
int8_t slice_qp_delta;
|
||||
int8_t slice_cb_qp_offset; // [-12, 12]
|
||||
|
|
|
@ -119,7 +119,7 @@ extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE h
|
|||
# include <span>
|
||||
#endif
|
||||
|
||||
static_assert( VK_HEADER_VERSION == 196, "Wrong VK_HEADER_VERSION!" );
|
||||
static_assert( VK_HEADER_VERSION == 197, "Wrong VK_HEADER_VERSION!" );
|
||||
|
||||
// 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default.
|
||||
// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION
|
||||
|
@ -3413,6 +3413,19 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo );
|
||||
}
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
|
||||
void vkCmdBeginRenderingKHR( VkCommandBuffer commandBuffer,
|
||||
const VkRenderingInfoKHR * pRenderingInfo ) const VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return ::vkCmdBeginRenderingKHR( commandBuffer, pRenderingInfo );
|
||||
}
|
||||
|
||||
void vkCmdEndRenderingKHR( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return ::vkCmdEndRenderingKHR( commandBuffer );
|
||||
}
|
||||
|
||||
# if defined( VK_USE_PLATFORM_GGP )
|
||||
//=== VK_GGP_stream_descriptor_surface ===
|
||||
|
||||
|
@ -6297,42 +6310,45 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
};
|
||||
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
|
||||
|
||||
[[noreturn]] static void throwResultException( Result result, char const * message )
|
||||
namespace
|
||||
{
|
||||
switch ( result )
|
||||
[[noreturn]] void throwResultException( Result result, char const * message )
|
||||
{
|
||||
case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
|
||||
case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
|
||||
case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
|
||||
case Result::eErrorDeviceLost: throw DeviceLostError( message );
|
||||
case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
|
||||
case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
|
||||
case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
|
||||
case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
|
||||
case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
|
||||
case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
|
||||
case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
|
||||
case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
|
||||
case Result::eErrorUnknown: throw UnknownError( message );
|
||||
case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
|
||||
case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
|
||||
case Result::eErrorFragmentation: throw FragmentationError( message );
|
||||
case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
|
||||
case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
|
||||
case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
|
||||
case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
|
||||
case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
|
||||
case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
|
||||
case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
|
||||
case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT:
|
||||
throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
|
||||
case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
|
||||
switch ( result )
|
||||
{
|
||||
case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message );
|
||||
case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message );
|
||||
case Result::eErrorInitializationFailed: throw InitializationFailedError( message );
|
||||
case Result::eErrorDeviceLost: throw DeviceLostError( message );
|
||||
case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message );
|
||||
case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message );
|
||||
case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message );
|
||||
case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message );
|
||||
case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message );
|
||||
case Result::eErrorTooManyObjects: throw TooManyObjectsError( message );
|
||||
case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message );
|
||||
case Result::eErrorFragmentedPool: throw FragmentedPoolError( message );
|
||||
case Result::eErrorUnknown: throw UnknownError( message );
|
||||
case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message );
|
||||
case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message );
|
||||
case Result::eErrorFragmentation: throw FragmentationError( message );
|
||||
case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message );
|
||||
case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message );
|
||||
case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message );
|
||||
case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message );
|
||||
case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message );
|
||||
case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message );
|
||||
case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message );
|
||||
case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT:
|
||||
throw InvalidDrmFormatModifierPlaneLayoutEXTError( message );
|
||||
case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message );
|
||||
# if defined( VK_USE_PLATFORM_WIN32_KHR )
|
||||
case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
|
||||
case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message );
|
||||
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
|
||||
default: throw SystemError( make_error_code( result ) );
|
||||
default: throw SystemError( make_error_code( result ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
} // namespace
|
||||
#endif
|
||||
|
||||
template <typename T>
|
||||
|
@ -6698,6 +6714,14 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<DeviceGroupRenderPassBeginInfo, RenderingInfoKHR>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<DeviceGroupCommandBufferBeginInfo, CommandBufferBeginInfo>
|
||||
{
|
||||
enum
|
||||
|
@ -7742,6 +7766,46 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH264ProfileEXT, QueryPoolCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH264ProfileEXT, FormatProperties2>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH264ProfileEXT, ImageCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH264ProfileEXT, ImageViewCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH264ProfileEXT, BufferCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||
|
||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||
|
@ -7802,6 +7866,46 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH265ProfileEXT, QueryPoolCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH265ProfileEXT, FormatProperties2>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH265ProfileEXT, ImageCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH265ProfileEXT, ImageViewCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoEncodeH265ProfileEXT, BufferCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||
|
||||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||
|
@ -7815,6 +7919,46 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH264ProfileEXT, QueryPoolCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH264ProfileEXT, FormatProperties2>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH264ProfileEXT, ImageCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH264ProfileEXT, ImageViewCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH264ProfileEXT, BufferCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH264CapabilitiesEXT, VideoCapabilitiesKHR>
|
||||
{
|
||||
enum
|
||||
|
@ -7882,6 +8026,96 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
};
|
||||
};
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
template <>
|
||||
struct StructExtends<PipelineRenderingCreateInfoKHR, GraphicsPipelineCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<PhysicalDeviceDynamicRenderingFeaturesKHR, PhysicalDeviceFeatures2>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<PhysicalDeviceDynamicRenderingFeaturesKHR, DeviceCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<CommandBufferInheritanceRenderingInfoKHR, CommandBufferInheritanceInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<RenderingFragmentShadingRateAttachmentInfoKHR, RenderingInfoKHR>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<RenderingFragmentDensityMapAttachmentInfoEXT, RenderingInfoKHR>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<AttachmentSampleCountInfoAMD, CommandBufferInheritanceInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<AttachmentSampleCountInfoAMD, GraphicsPipelineCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<MultiviewPerViewAttributesInfoNVX, CommandBufferInheritanceInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<MultiviewPerViewAttributesInfoNVX, GraphicsPipelineCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<MultiviewPerViewAttributesInfoNVX, RenderingInfoKHR>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
|
||||
//=== VK_NV_corner_sampled_image ===
|
||||
template <>
|
||||
struct StructExtends<PhysicalDeviceCornerSampledImageFeaturesNV, PhysicalDeviceFeatures2>
|
||||
|
@ -8841,6 +9075,46 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH265ProfileEXT, QueryPoolCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH265ProfileEXT, FormatProperties2>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH265ProfileEXT, ImageCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH265ProfileEXT, ImageViewCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH265ProfileEXT, BufferCreateInfo>
|
||||
{
|
||||
enum
|
||||
{
|
||||
value = true
|
||||
};
|
||||
};
|
||||
template <>
|
||||
struct StructExtends<VideoDecodeH265CapabilitiesEXT, VideoCapabilitiesKHR>
|
||||
{
|
||||
enum
|
||||
|
@ -11207,6 +11481,10 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
//=== VK_AMD_shader_info ===
|
||||
PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0;
|
||||
PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR = 0;
|
||||
|
||||
#if defined( VK_USE_PLATFORM_GGP )
|
||||
//=== VK_GGP_stream_descriptor_surface ===
|
||||
PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
|
||||
|
@ -11861,10 +12139,9 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) );
|
||||
vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties(
|
||||
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) );
|
||||
vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) );
|
||||
vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
|
||||
vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
|
||||
vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
|
||||
vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) );
|
||||
vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) );
|
||||
vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) );
|
||||
vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties(
|
||||
vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) );
|
||||
vkEnumerateDeviceLayerProperties =
|
||||
|
@ -12273,6 +12550,11 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
//=== VK_AMD_shader_info ===
|
||||
vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) );
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
vkCmdBeginRenderingKHR =
|
||||
PFN_vkCmdBeginRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderingKHR" ) );
|
||||
vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderingKHR" ) );
|
||||
|
||||
#if defined( VK_USE_PLATFORM_GGP )
|
||||
//=== VK_GGP_stream_descriptor_surface ===
|
||||
vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP(
|
||||
|
@ -13353,6 +13635,10 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
//=== VK_AMD_shader_info ===
|
||||
vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) );
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderingKHR" ) );
|
||||
vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderingKHR" ) );
|
||||
|
||||
#if defined( VK_USE_PLATFORM_WIN32_KHR )
|
||||
//=== VK_NV_external_memory_win32 ===
|
||||
vkGetMemoryWin32HandleNV =
|
||||
|
|
|
@ -572,19 +572,6 @@ typedef struct VkVideoEncodeH264ProfileEXT {
|
|||
#include "vk_video/vulkan_video_codec_h265std_encode.h"
|
||||
#define VK_EXT_VIDEO_ENCODE_H265_SPEC_VERSION 2
|
||||
#define VK_EXT_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_EXT_video_encode_h265"
|
||||
|
||||
typedef enum VkVideoEncodeH265CapabilityFlagBitsEXT {
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT = 0x00000001,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0x00000002,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0x00000004,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0x00000008,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0x00000010,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0x00000020,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0x00000040,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0x00000080,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT = 0x00000100,
|
||||
VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
|
||||
} VkVideoEncodeH265CapabilityFlagBitsEXT;
|
||||
typedef VkFlags VkVideoEncodeH265CapabilityFlagsEXT;
|
||||
|
||||
typedef enum VkVideoEncodeH265InputModeFlagBitsEXT {
|
||||
|
|
|
@ -72,7 +72,7 @@ extern "C" {
|
|||
#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
|
||||
|
||||
// Version of this file
|
||||
#define VK_HEADER_VERSION 196
|
||||
#define VK_HEADER_VERSION 197
|
||||
|
||||
// Complete version of this file
|
||||
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 2, VK_HEADER_VERSION)
|
||||
|
@ -514,6 +514,15 @@ typedef enum VkStructureType {
|
|||
VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT = 1000040007,
|
||||
#endif
|
||||
VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
|
||||
VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = 1000044000,
|
||||
VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = 1000044001,
|
||||
VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = 1000044002,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = 1000044003,
|
||||
VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = 1000044004,
|
||||
VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
|
||||
VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
|
||||
VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
|
||||
VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
|
||||
VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
|
||||
VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
|
||||
|
@ -900,6 +909,7 @@ typedef enum VkStructureType {
|
|||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
|
||||
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
|
||||
VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
|
||||
VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
|
||||
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
|
||||
|
@ -1768,8 +1778,9 @@ typedef enum VkAttachmentLoadOp {
|
|||
typedef enum VkAttachmentStoreOp {
|
||||
VK_ATTACHMENT_STORE_OP_STORE = 0,
|
||||
VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
|
||||
VK_ATTACHMENT_STORE_OP_NONE_EXT = 1000301000,
|
||||
VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE_EXT,
|
||||
VK_ATTACHMENT_STORE_OP_NONE_KHR = 1000301000,
|
||||
VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE_KHR,
|
||||
VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE_KHR,
|
||||
VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
|
||||
} VkAttachmentStoreOp;
|
||||
|
||||
|
@ -2203,6 +2214,8 @@ typedef enum VkPipelineCreateFlagBits {
|
|||
VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
|
||||
VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
|
||||
VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
|
||||
VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
|
||||
VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
|
||||
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
|
||||
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
|
||||
VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
|
||||
|
@ -6486,6 +6499,116 @@ VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
|
|||
#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
|
||||
|
||||
|
||||
#define VK_KHR_dynamic_rendering 1
|
||||
#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
|
||||
#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
|
||||
|
||||
typedef enum VkRenderingFlagBitsKHR {
|
||||
VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = 0x00000001,
|
||||
VK_RENDERING_SUSPENDING_BIT_KHR = 0x00000002,
|
||||
VK_RENDERING_RESUMING_BIT_KHR = 0x00000004,
|
||||
VK_RENDERING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
|
||||
} VkRenderingFlagBitsKHR;
|
||||
typedef VkFlags VkRenderingFlagsKHR;
|
||||
typedef struct VkRenderingAttachmentInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImageView imageView;
|
||||
VkImageLayout imageLayout;
|
||||
VkResolveModeFlagBits resolveMode;
|
||||
VkImageView resolveImageView;
|
||||
VkImageLayout resolveImageLayout;
|
||||
VkAttachmentLoadOp loadOp;
|
||||
VkAttachmentStoreOp storeOp;
|
||||
VkClearValue clearValue;
|
||||
} VkRenderingAttachmentInfoKHR;
|
||||
|
||||
typedef struct VkRenderingInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkRenderingFlagsKHR flags;
|
||||
VkRect2D renderArea;
|
||||
uint32_t layerCount;
|
||||
uint32_t viewMask;
|
||||
uint32_t colorAttachmentCount;
|
||||
const VkRenderingAttachmentInfoKHR* pColorAttachments;
|
||||
const VkRenderingAttachmentInfoKHR* pDepthAttachment;
|
||||
const VkRenderingAttachmentInfoKHR* pStencilAttachment;
|
||||
} VkRenderingInfoKHR;
|
||||
|
||||
typedef struct VkPipelineRenderingCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t viewMask;
|
||||
uint32_t colorAttachmentCount;
|
||||
const VkFormat* pColorAttachmentFormats;
|
||||
VkFormat depthAttachmentFormat;
|
||||
VkFormat stencilAttachmentFormat;
|
||||
} VkPipelineRenderingCreateInfoKHR;
|
||||
|
||||
typedef struct VkPhysicalDeviceDynamicRenderingFeaturesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkBool32 dynamicRendering;
|
||||
} VkPhysicalDeviceDynamicRenderingFeaturesKHR;
|
||||
|
||||
typedef struct VkCommandBufferInheritanceRenderingInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkRenderingFlagsKHR flags;
|
||||
uint32_t viewMask;
|
||||
uint32_t colorAttachmentCount;
|
||||
const VkFormat* pColorAttachmentFormats;
|
||||
VkFormat depthAttachmentFormat;
|
||||
VkFormat stencilAttachmentFormat;
|
||||
VkSampleCountFlagBits rasterizationSamples;
|
||||
} VkCommandBufferInheritanceRenderingInfoKHR;
|
||||
|
||||
typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImageView imageView;
|
||||
VkImageLayout imageLayout;
|
||||
VkExtent2D shadingRateAttachmentTexelSize;
|
||||
} VkRenderingFragmentShadingRateAttachmentInfoKHR;
|
||||
|
||||
typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImageView imageView;
|
||||
VkImageLayout imageLayout;
|
||||
} VkRenderingFragmentDensityMapAttachmentInfoEXT;
|
||||
|
||||
typedef struct VkAttachmentSampleCountInfoAMD {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t colorAttachmentCount;
|
||||
const VkSampleCountFlagBits* pColorAttachmentSamples;
|
||||
VkSampleCountFlagBits depthStencilAttachmentSamples;
|
||||
} VkAttachmentSampleCountInfoAMD;
|
||||
|
||||
typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
|
||||
|
||||
typedef struct VkMultiviewPerViewAttributesInfoNVX {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkBool32 perViewAttributes;
|
||||
VkBool32 perViewAttributesPositionXOnly;
|
||||
} VkMultiviewPerViewAttributesInfoNVX;
|
||||
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfoKHR* pRenderingInfo);
|
||||
typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
|
||||
VkCommandBuffer commandBuffer,
|
||||
const VkRenderingInfoKHR* pRenderingInfo);
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
|
||||
VkCommandBuffer commandBuffer);
|
||||
#endif
|
||||
|
||||
|
||||
#define VK_KHR_multiview 1
|
||||
#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
|
||||
#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
|
||||
|
|
|
@ -398,7 +398,18 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
eVideoDecodeH264SessionParametersAddInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT,
|
||||
eVideoDecodeH264DpbSlotInfoEXT = VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT,
|
||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||
eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
|
||||
eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,
|
||||
eRenderingInfoKHR = VK_STRUCTURE_TYPE_RENDERING_INFO_KHR,
|
||||
eRenderingAttachmentInfoKHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR,
|
||||
ePipelineRenderingCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR,
|
||||
ePhysicalDeviceDynamicRenderingFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR,
|
||||
eCommandBufferInheritanceRenderingInfoKHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR,
|
||||
eRenderingFragmentShadingRateAttachmentInfoKHR =
|
||||
VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,
|
||||
eRenderingFragmentDensityMapAttachmentInfoEXT =
|
||||
VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT,
|
||||
eAttachmentSampleCountInfoAMD = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
|
||||
eMultiviewPerViewAttributesInfoNVX = VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,
|
||||
#if defined( VK_USE_PLATFORM_GGP )
|
||||
eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,
|
||||
#endif /*VK_USE_PLATFORM_GGP*/
|
||||
|
@ -882,6 +893,7 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR,
|
||||
eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR,
|
||||
eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR,
|
||||
eAttachmentSampleCountInfoNV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV,
|
||||
eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR,
|
||||
eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR,
|
||||
eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR,
|
||||
|
@ -1294,6 +1306,18 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
case StructureType::eVideoDecodeH264DpbSlotInfoEXT: return "VideoDecodeH264DpbSlotInfoEXT";
|
||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||
case StructureType::eTextureLodGatherFormatPropertiesAMD: return "TextureLodGatherFormatPropertiesAMD";
|
||||
case StructureType::eRenderingInfoKHR: return "RenderingInfoKHR";
|
||||
case StructureType::eRenderingAttachmentInfoKHR: return "RenderingAttachmentInfoKHR";
|
||||
case StructureType::ePipelineRenderingCreateInfoKHR: return "PipelineRenderingCreateInfoKHR";
|
||||
case StructureType::ePhysicalDeviceDynamicRenderingFeaturesKHR:
|
||||
return "PhysicalDeviceDynamicRenderingFeaturesKHR";
|
||||
case StructureType::eCommandBufferInheritanceRenderingInfoKHR: return "CommandBufferInheritanceRenderingInfoKHR";
|
||||
case StructureType::eRenderingFragmentShadingRateAttachmentInfoKHR:
|
||||
return "RenderingFragmentShadingRateAttachmentInfoKHR";
|
||||
case StructureType::eRenderingFragmentDensityMapAttachmentInfoEXT:
|
||||
return "RenderingFragmentDensityMapAttachmentInfoEXT";
|
||||
case StructureType::eAttachmentSampleCountInfoAMD: return "AttachmentSampleCountInfoAMD";
|
||||
case StructureType::eMultiviewPerViewAttributesInfoNVX: return "MultiviewPerViewAttributesInfoNVX";
|
||||
#if defined( VK_USE_PLATFORM_GGP )
|
||||
case StructureType::eStreamDescriptorSurfaceCreateInfoGGP: return "StreamDescriptorSurfaceCreateInfoGGP";
|
||||
#endif /*VK_USE_PLATFORM_GGP*/
|
||||
|
@ -3891,11 +3915,15 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
|
||||
enum class PipelineCreateFlagBits : VkPipelineCreateFlags
|
||||
{
|
||||
eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
|
||||
eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
|
||||
eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
|
||||
eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
|
||||
eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
|
||||
eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT,
|
||||
eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT,
|
||||
eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT,
|
||||
eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
|
||||
eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
|
||||
eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR =
|
||||
VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
|
||||
eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT =
|
||||
VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
|
||||
eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR,
|
||||
eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR,
|
||||
eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR,
|
||||
|
@ -3925,6 +3953,10 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
case PipelineCreateFlagBits::eDerivative: return "Derivative";
|
||||
case PipelineCreateFlagBits::eViewIndexFromDeviceIndex: return "ViewIndexFromDeviceIndex";
|
||||
case PipelineCreateFlagBits::eDispatchBase: return "DispatchBase";
|
||||
case PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR:
|
||||
return "VkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR";
|
||||
case PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT:
|
||||
return "VkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT";
|
||||
case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR: return "RayTracingNoNullAnyHitShadersKHR";
|
||||
case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR: return "RayTracingNoNullClosestHitShadersKHR";
|
||||
case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR: return "RayTracingNoNullMissShadersKHR";
|
||||
|
@ -4504,6 +4536,7 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
{
|
||||
eStore = VK_ATTACHMENT_STORE_OP_STORE,
|
||||
eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE,
|
||||
eNoneKHR = VK_ATTACHMENT_STORE_OP_NONE_KHR,
|
||||
eNoneEXT = VK_ATTACHMENT_STORE_OP_NONE_EXT,
|
||||
eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM
|
||||
};
|
||||
|
@ -4514,7 +4547,7 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
{
|
||||
case AttachmentStoreOp::eStore: return "Store";
|
||||
case AttachmentStoreOp::eDontCare: return "DontCare";
|
||||
case AttachmentStoreOp::eNoneEXT: return "NoneEXT";
|
||||
case AttachmentStoreOp::eNoneKHR: return "NoneKHR";
|
||||
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
|
||||
}
|
||||
}
|
||||
|
@ -6026,36 +6059,6 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
#if defined( VK_ENABLE_BETA_EXTENSIONS )
|
||||
//=== VK_EXT_video_encode_h265 ===
|
||||
|
||||
enum class VideoEncodeH265CapabilityFlagBitsEXT : VkVideoEncodeH265CapabilityFlagsEXT
|
||||
{
|
||||
eWeightedBiPredImplicit = VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT,
|
||||
eTransform8X8 = VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_8X8_BIT_EXT,
|
||||
eChromaQpOffset = VK_VIDEO_ENCODE_H265_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT,
|
||||
eSecondChromaQpOffset = VK_VIDEO_ENCODE_H265_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT,
|
||||
eDeblockingFilterDisabled = VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT,
|
||||
eDeblockingFilterEnabled = VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT,
|
||||
eDeblockingFilterPartial = VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT,
|
||||
eMultipleSlicePerFrame = VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT,
|
||||
eEvenlyDistributedSliceSize = VK_VIDEO_ENCODE_H265_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT
|
||||
};
|
||||
|
||||
VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagBitsEXT value )
|
||||
{
|
||||
switch ( value )
|
||||
{
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBiPredImplicit: return "WeightedBiPredImplicit";
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eTransform8X8: return "Transform8X8";
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eChromaQpOffset: return "ChromaQpOffset";
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eSecondChromaQpOffset: return "SecondChromaQpOffset";
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterDisabled: return "DeblockingFilterDisabled";
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterEnabled: return "DeblockingFilterEnabled";
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterPartial: return "DeblockingFilterPartial";
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerFrame: return "MultipleSlicePerFrame";
|
||||
case VideoEncodeH265CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize: return "EvenlyDistributedSliceSize";
|
||||
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
|
||||
}
|
||||
}
|
||||
|
||||
enum class VideoEncodeH265InputModeFlagBitsEXT : VkVideoEncodeH265InputModeFlagsEXT
|
||||
{
|
||||
eFrame = VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT,
|
||||
|
@ -6112,6 +6115,15 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
}
|
||||
}
|
||||
|
||||
enum class VideoEncodeH265CapabilityFlagBitsEXT : VkVideoEncodeH265CapabilityFlagsEXT
|
||||
{
|
||||
};
|
||||
|
||||
VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagBitsEXT )
|
||||
{
|
||||
return "(void)";
|
||||
}
|
||||
|
||||
enum class VideoEncodeH265CreateFlagBitsEXT : VkVideoEncodeH265CreateFlagsEXT
|
||||
{
|
||||
};
|
||||
|
@ -6173,6 +6185,26 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
}
|
||||
}
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
|
||||
enum class RenderingFlagBitsKHR : VkRenderingFlagsKHR
|
||||
{
|
||||
eContentsSecondaryCommandBuffers = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR,
|
||||
eSuspending = VK_RENDERING_SUSPENDING_BIT_KHR,
|
||||
eResuming = VK_RENDERING_RESUMING_BIT_KHR
|
||||
};
|
||||
|
||||
VULKAN_HPP_INLINE std::string to_string( RenderingFlagBitsKHR value )
|
||||
{
|
||||
switch ( value )
|
||||
{
|
||||
case RenderingFlagBitsKHR::eContentsSecondaryCommandBuffers: return "ContentsSecondaryCommandBuffers";
|
||||
case RenderingFlagBitsKHR::eSuspending: return "Suspending";
|
||||
case RenderingFlagBitsKHR::eResuming: return "Resuming";
|
||||
default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
|
||||
}
|
||||
}
|
||||
|
||||
#if defined( VK_USE_PLATFORM_GGP )
|
||||
//=== VK_GGP_stream_descriptor_surface ===
|
||||
|
||||
|
@ -9793,6 +9825,8 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
VkFlags( PipelineCreateFlagBits::eDisableOptimization ) | VkFlags( PipelineCreateFlagBits::eAllowDerivatives ) |
|
||||
VkFlags( PipelineCreateFlagBits::eDerivative ) | VkFlags( PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) |
|
||||
VkFlags( PipelineCreateFlagBits::eDispatchBase ) |
|
||||
VkFlags( PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR ) |
|
||||
VkFlags( PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT ) |
|
||||
VkFlags( PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) |
|
||||
VkFlags( PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) |
|
||||
VkFlags( PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) |
|
||||
|
@ -9849,6 +9883,10 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
result += "ViewIndexFromDeviceIndex | ";
|
||||
if ( value & PipelineCreateFlagBits::eDispatchBase )
|
||||
result += "DispatchBase | ";
|
||||
if ( value & PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR )
|
||||
result += "VkPipelineRasterizationStateCreateFragmentShadingRateAttachmentKHR | ";
|
||||
if ( value & PipelineCreateFlagBits::eVkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT )
|
||||
result += "VkPipelineRasterizationStateCreateFragmentDensityMapAttachmentEXT | ";
|
||||
if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR )
|
||||
result += "RayTracingNoNullAnyHitShadersKHR | ";
|
||||
if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR )
|
||||
|
@ -12846,73 +12884,9 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
|
||||
using VideoEncodeH265CapabilityFlagsEXT = Flags<VideoEncodeH265CapabilityFlagBitsEXT>;
|
||||
|
||||
template <>
|
||||
struct FlagTraits<VideoEncodeH265CapabilityFlagBitsEXT>
|
||||
VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagsEXT )
|
||||
{
|
||||
enum : VkFlags
|
||||
{
|
||||
allFlags = VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBiPredImplicit ) |
|
||||
VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eTransform8X8 ) |
|
||||
VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eChromaQpOffset ) |
|
||||
VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eSecondChromaQpOffset ) |
|
||||
VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterDisabled ) |
|
||||
VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterEnabled ) |
|
||||
VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterPartial ) |
|
||||
VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerFrame ) |
|
||||
VkFlags( VideoEncodeH265CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
|
||||
};
|
||||
};
|
||||
|
||||
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT operator|(
|
||||
VideoEncodeH265CapabilityFlagBitsEXT bit0, VideoEncodeH265CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return VideoEncodeH265CapabilityFlagsEXT( bit0 ) | bit1;
|
||||
}
|
||||
|
||||
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT operator&(
|
||||
VideoEncodeH265CapabilityFlagBitsEXT bit0, VideoEncodeH265CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return VideoEncodeH265CapabilityFlagsEXT( bit0 ) & bit1;
|
||||
}
|
||||
|
||||
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT operator^(
|
||||
VideoEncodeH265CapabilityFlagBitsEXT bit0, VideoEncodeH265CapabilityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return VideoEncodeH265CapabilityFlagsEXT( bit0 ) ^ bit1;
|
||||
}
|
||||
|
||||
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR VideoEncodeH265CapabilityFlagsEXT
|
||||
operator~( VideoEncodeH265CapabilityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return ~( VideoEncodeH265CapabilityFlagsEXT( bits ) );
|
||||
}
|
||||
|
||||
VULKAN_HPP_INLINE std::string to_string( VideoEncodeH265CapabilityFlagsEXT value )
|
||||
{
|
||||
if ( !value )
|
||||
return "{}";
|
||||
|
||||
std::string result;
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eWeightedBiPredImplicit )
|
||||
result += "WeightedBiPredImplicit | ";
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eTransform8X8 )
|
||||
result += "Transform8X8 | ";
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eChromaQpOffset )
|
||||
result += "ChromaQpOffset | ";
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eSecondChromaQpOffset )
|
||||
result += "SecondChromaQpOffset | ";
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterDisabled )
|
||||
result += "DeblockingFilterDisabled | ";
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterEnabled )
|
||||
result += "DeblockingFilterEnabled | ";
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eDeblockingFilterPartial )
|
||||
result += "DeblockingFilterPartial | ";
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eMultipleSlicePerFrame )
|
||||
result += "MultipleSlicePerFrame | ";
|
||||
if ( value & VideoEncodeH265CapabilityFlagBitsEXT::eEvenlyDistributedSliceSize )
|
||||
result += "EvenlyDistributedSliceSize | ";
|
||||
|
||||
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
|
||||
return "{}";
|
||||
}
|
||||
|
||||
using VideoEncodeH265InputModeFlagsEXT = Flags<VideoEncodeH265InputModeFlagBitsEXT>;
|
||||
|
@ -13145,6 +13119,59 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
}
|
||||
#endif /*VK_ENABLE_BETA_EXTENSIONS*/
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
|
||||
using RenderingFlagsKHR = Flags<RenderingFlagBitsKHR>;
|
||||
|
||||
template <>
|
||||
struct FlagTraits<RenderingFlagBitsKHR>
|
||||
{
|
||||
enum : VkFlags
|
||||
{
|
||||
allFlags = VkFlags( RenderingFlagBitsKHR::eContentsSecondaryCommandBuffers ) |
|
||||
VkFlags( RenderingFlagBitsKHR::eSuspending ) | VkFlags( RenderingFlagBitsKHR::eResuming )
|
||||
};
|
||||
};
|
||||
|
||||
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderingFlagsKHR operator|( RenderingFlagBitsKHR bit0,
|
||||
RenderingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return RenderingFlagsKHR( bit0 ) | bit1;
|
||||
}
|
||||
|
||||
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderingFlagsKHR operator&( RenderingFlagBitsKHR bit0,
|
||||
RenderingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return RenderingFlagsKHR( bit0 ) & bit1;
|
||||
}
|
||||
|
||||
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderingFlagsKHR operator^( RenderingFlagBitsKHR bit0,
|
||||
RenderingFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return RenderingFlagsKHR( bit0 ) ^ bit1;
|
||||
}
|
||||
|
||||
VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderingFlagsKHR operator~( RenderingFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
return ~( RenderingFlagsKHR( bits ) );
|
||||
}
|
||||
|
||||
VULKAN_HPP_INLINE std::string to_string( RenderingFlagsKHR value )
|
||||
{
|
||||
if ( !value )
|
||||
return "{}";
|
||||
|
||||
std::string result;
|
||||
if ( value & RenderingFlagBitsKHR::eContentsSecondaryCommandBuffers )
|
||||
result += "ContentsSecondaryCommandBuffers | ";
|
||||
if ( value & RenderingFlagBitsKHR::eSuspending )
|
||||
result += "Suspending | ";
|
||||
if ( value & RenderingFlagBitsKHR::eResuming )
|
||||
result += "Resuming | ";
|
||||
|
||||
return "{ " + result.substr( 0, result.size() - 3 ) + " }";
|
||||
}
|
||||
|
||||
#if defined( VK_USE_PLATFORM_GGP )
|
||||
//=== VK_GGP_stream_descriptor_surface ===
|
||||
|
||||
|
|
|
@ -10098,6 +10098,34 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
}
|
||||
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
|
||||
template <typename Dispatch>
|
||||
VULKAN_HPP_INLINE void
|
||||
CommandBuffer::beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfoKHR * pRenderingInfo,
|
||||
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
|
||||
d.vkCmdBeginRenderingKHR( m_commandBuffer, reinterpret_cast<const VkRenderingInfoKHR *>( pRenderingInfo ) );
|
||||
}
|
||||
|
||||
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
|
||||
template <typename Dispatch>
|
||||
VULKAN_HPP_INLINE void CommandBuffer::beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfoKHR & renderingInfo,
|
||||
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
|
||||
d.vkCmdBeginRenderingKHR( m_commandBuffer, reinterpret_cast<const VkRenderingInfoKHR *>( &renderingInfo ) );
|
||||
}
|
||||
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
|
||||
|
||||
template <typename Dispatch>
|
||||
VULKAN_HPP_INLINE void CommandBuffer::endRenderingKHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
|
||||
{
|
||||
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
|
||||
d.vkCmdEndRenderingKHR( m_commandBuffer );
|
||||
}
|
||||
|
||||
#if defined( VK_USE_PLATFORM_GGP )
|
||||
//=== VK_GGP_stream_descriptor_surface ===
|
||||
|
||||
|
|
|
@ -515,6 +515,18 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
struct ShaderResourceUsageAMD;
|
||||
struct ShaderStatisticsInfoAMD;
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
struct RenderingInfoKHR;
|
||||
struct RenderingAttachmentInfoKHR;
|
||||
struct PipelineRenderingCreateInfoKHR;
|
||||
struct PhysicalDeviceDynamicRenderingFeaturesKHR;
|
||||
struct CommandBufferInheritanceRenderingInfoKHR;
|
||||
struct RenderingFragmentShadingRateAttachmentInfoKHR;
|
||||
struct RenderingFragmentDensityMapAttachmentInfoEXT;
|
||||
struct AttachmentSampleCountInfoAMD;
|
||||
using AttachmentSampleCountInfoNV = AttachmentSampleCountInfoAMD;
|
||||
struct MultiviewPerViewAttributesInfoNVX;
|
||||
|
||||
#if defined( VK_USE_PLATFORM_GGP )
|
||||
//=== VK_GGP_stream_descriptor_surface ===
|
||||
struct StreamDescriptorSurfaceCreateInfoGGP;
|
||||
|
@ -3933,6 +3945,20 @@ namespace VULKAN_HPP_NAMESPACE
|
|||
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const
|
||||
VULKAN_HPP_NOEXCEPT;
|
||||
|
||||
//=== VK_KHR_dynamic_rendering ===
|
||||
|
||||
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
|
||||
void beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfoKHR * pRenderingInfo,
|
||||
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
|
||||
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
|
||||
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
|
||||
void beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfoKHR & renderingInfo,
|
||||
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
|
||||
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
|
||||
|
||||
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
|
||||
void endRenderingKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
|
||||
|
||||
//=== VK_KHR_device_group ===
|
||||
|
||||
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -123,7 +123,9 @@ class GeneratorOptions:
|
|||
emitExtensions=None,
|
||||
emitSpirv=None,
|
||||
reparentEnums=True,
|
||||
sortProcedure=regSortFeatures):
|
||||
sortProcedure=regSortFeatures,
|
||||
requireCommandAliases=False,
|
||||
):
|
||||
"""Constructor.
|
||||
|
||||
Arguments:
|
||||
|
@ -233,6 +235,10 @@ class GeneratorOptions:
|
|||
self.codeGenerator = False
|
||||
"""True if this generator makes compilable code"""
|
||||
|
||||
self.requireCommandAliases = requireCommandAliases
|
||||
"""True if alias= attributes of <command> tags are transitively
|
||||
required."""
|
||||
|
||||
def emptyRegex(self, pat):
|
||||
"""Substitute a regular expression which matches no version
|
||||
or extension names for None or the empty string."""
|
||||
|
@ -260,6 +266,17 @@ class OutputGenerator:
|
|||
'basetype': 'basetypes',
|
||||
}
|
||||
|
||||
def breakName(self, name, msg):
|
||||
"""Break into debugger if this is a special name"""
|
||||
|
||||
# List of string names to break on
|
||||
bad = (
|
||||
)
|
||||
|
||||
if name in bad and True:
|
||||
print('breakName {}: {}'.format(name, msg))
|
||||
pdb.set_trace()
|
||||
|
||||
def __init__(self, errFile=sys.stderr, warnFile=sys.stderr, diagFile=sys.stdout):
|
||||
"""Constructor
|
||||
|
||||
|
|
|
@ -205,6 +205,10 @@ def makeGenOpts(args):
|
|||
|
||||
|
||||
# API validity files for spec
|
||||
#
|
||||
# requireCommandAliases is set to True because we need validity files
|
||||
# for the command something is promoted to even when the promoted-to
|
||||
# feature is not included. This avoids wordy includes of validity files.
|
||||
genOpts['validinc'] = [
|
||||
ValidityOutputGenerator,
|
||||
DocGeneratorOptions(
|
||||
|
@ -219,7 +223,9 @@ def makeGenOpts(args):
|
|||
defaultExtensions = None,
|
||||
addExtensions = addExtensionsPat,
|
||||
removeExtensions = removeExtensionsPat,
|
||||
emitExtensions = emitExtensionsPat)
|
||||
emitExtensions = emitExtensionsPat,
|
||||
requireCommandAliases = True,
|
||||
)
|
||||
]
|
||||
|
||||
# API host sync table files for spec
|
||||
|
@ -661,6 +667,10 @@ if __name__ == '__main__':
|
|||
else:
|
||||
diag = None
|
||||
|
||||
if args.time:
|
||||
# Log diagnostics and warnings
|
||||
setLogFile(setDiag = True, setWarn = True, filename = '-')
|
||||
|
||||
(gen, options) = (None, None)
|
||||
if not args.validate:
|
||||
# Create the API generator & generator options
|
||||
|
|
|
@ -762,12 +762,23 @@ class Registry:
|
|||
cmd = self.lookupElementInfo(cmdname, self.cmddict)
|
||||
if cmd is not None:
|
||||
cmd.required = required
|
||||
|
||||
# Tag command dependencies in 'alias' attribute as required
|
||||
depname = cmd.elem.get('alias')
|
||||
if depname:
|
||||
self.gen.logMsg('diag', 'Generating dependent command',
|
||||
depname, 'for alias', cmdname)
|
||||
self.markCmdRequired(depname, required)
|
||||
#
|
||||
# This is usually not done, because command 'aliases' are not
|
||||
# actual C language aliases like type and enum aliases. Instead
|
||||
# they are just duplicates of the function signature of the
|
||||
# alias. This means that there is no dependency of a command
|
||||
# alias on what it aliases. One exception is validity includes,
|
||||
# where the spec markup needs the promoted-to validity include
|
||||
# even if only the promoted-from command is being built.
|
||||
if self.genOpts.requireCommandAliases:
|
||||
depname = cmd.elem.get('alias')
|
||||
if depname:
|
||||
self.gen.logMsg('diag', 'Generating dependent command',
|
||||
depname, 'for alias', cmdname)
|
||||
self.markCmdRequired(depname, required)
|
||||
|
||||
# Tag all parameter types of this command as required.
|
||||
# This DOES NOT remove types of commands in a <remove>
|
||||
# tag, because many other commands may use the same type.
|
||||
|
@ -842,8 +853,13 @@ class Registry:
|
|||
- require - `<require>` block from the registry
|
||||
- tag - tag to look for in the require block"""
|
||||
|
||||
if alias and require.findall(tag + "[@name='" + alias + "']"):
|
||||
return True
|
||||
# For the time being, the code below is bypassed. It has the effect
|
||||
# of excluding "spelling aliases" created to comply with the style
|
||||
# guide, but this leaves references out of the specification and
|
||||
# causes broken internal links.
|
||||
#
|
||||
# if alias and require.findall(tag + "[@name='" + alias + "']"):
|
||||
# return True
|
||||
|
||||
return False
|
||||
|
||||
|
@ -902,6 +918,9 @@ class Registry:
|
|||
if not typeextends in self.gen.featureDictionary[featurename][typecat][required_key]:
|
||||
self.gen.featureDictionary[featurename][typecat][required_key][typeextends] = []
|
||||
self.gen.featureDictionary[featurename][typecat][required_key][typeextends].append(typename)
|
||||
else:
|
||||
self.gen.logMsg('warn', 'fillFeatureDictionary: NOT filling for {}'.format(typename))
|
||||
|
||||
|
||||
for enumElem in require.findall('enum'):
|
||||
enumname = enumElem.get('name')
|
||||
|
@ -916,16 +935,18 @@ class Registry:
|
|||
if not enumextends in self.gen.featureDictionary[featurename]['enumconstant'][required_key]:
|
||||
self.gen.featureDictionary[featurename]['enumconstant'][required_key][enumextends] = []
|
||||
self.gen.featureDictionary[featurename]['enumconstant'][required_key][enumextends].append(enumname)
|
||||
else:
|
||||
self.gen.logMsg('warn', 'fillFeatureDictionary: NOT filling for {}'.format(typename))
|
||||
|
||||
for cmdElem in require.findall('command'):
|
||||
|
||||
# Remove aliases in the same extension/feature; these are always added as a correction. Don't need the original to be visible.
|
||||
alias = self.getAlias(cmdElem, self.cmddict)
|
||||
if not self.checkForCorrectionAliases(alias, require, 'command'):
|
||||
if not required_key in self.gen.featureDictionary[featurename]['command']:
|
||||
self.gen.featureDictionary[featurename]['command'][required_key] = []
|
||||
self.gen.featureDictionary[featurename]['command'][required_key].append(cmdElem.get('name'))
|
||||
|
||||
else:
|
||||
self.gen.logMsg('warn', 'fillFeatureDictionary: NOT filling for {}'.format(typename))
|
||||
|
||||
def requireAndRemoveFeatures(self, interface, featurename, api, profile):
|
||||
"""Process `<require>` and `<remove>` tags for a `<version>` or `<extension>`.
|
||||
|
@ -935,10 +956,12 @@ class Registry:
|
|||
- featurename - name of the feature
|
||||
- api - string specifying API name being generated
|
||||
- profile - string specifying API profile being generated"""
|
||||
|
||||
# <require> marks things that are required by this version/profile
|
||||
for feature in interface.findall('require'):
|
||||
if matchAPIProfile(api, profile, feature):
|
||||
self.markRequired(featurename, feature, True)
|
||||
|
||||
# <remove> marks things that are removed by this version/profile
|
||||
for feature in interface.findall('remove'):
|
||||
if matchAPIProfile(api, profile, feature):
|
||||
|
@ -1167,6 +1190,32 @@ class Registry:
|
|||
genProc = self.gen.genSpirv
|
||||
genProc(spirv, name, alias)
|
||||
|
||||
def stripUnsupportedAPIs(self, dictionary, attribute, supportedDictionary):
|
||||
"""Strip unsupported APIs from attributes of APIs.
|
||||
dictionary - *Info dictionary of APIs to be updated
|
||||
attribute - attribute name to look for in each API
|
||||
supportedDictionary - dictionary in which to look for supported
|
||||
API elements in the attribute"""
|
||||
|
||||
for key in dictionary:
|
||||
eleminfo = dictionary[key]
|
||||
attribstring = eleminfo.elem.get(attribute)
|
||||
if attribstring is not None:
|
||||
apis = []
|
||||
stripped = False
|
||||
for api in attribstring.split(','):
|
||||
##print('Checking API {} referenced by {}'.format(api, key))
|
||||
if supportedDictionary[api].required:
|
||||
apis.append(api)
|
||||
else:
|
||||
stripped = True
|
||||
##print('\t**STRIPPING API {} from {}'.format(api, key))
|
||||
|
||||
# Update the attribute after stripping stuff.
|
||||
# Could sort apis before joining, but it's not a clear win
|
||||
if stripped:
|
||||
eleminfo.elem.set(attribute, ','.join(apis))
|
||||
|
||||
def apiGen(self):
|
||||
"""Generate interface for specified versions using the current
|
||||
generator and generator options"""
|
||||
|
@ -1177,8 +1226,13 @@ class Registry:
|
|||
'profile:', self.genOpts.profile)
|
||||
self.gen.logMsg('diag', '*******************************************')
|
||||
|
||||
# Reset required/declared flags for all features
|
||||
self.apiReset()
|
||||
# Could reset required/declared flags for all features here.
|
||||
# This has been removed as never used. The initial motivation was
|
||||
# the idea of calling apiGen() repeatedly for different targets, but
|
||||
# this has never been done. The 20% or so build-time speedup that
|
||||
# might result is not worth the effort to make it actually work.
|
||||
#
|
||||
#@@ self.apiReset()
|
||||
|
||||
# Compile regexps used to select versions & extensions
|
||||
regVersions = re.compile(self.genOpts.versions)
|
||||
|
@ -1316,6 +1370,21 @@ class Registry:
|
|||
self.requireAndRemoveFeatures(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile)
|
||||
self.assignAdditionalValidity(f.elem, self.genOpts.apiname, self.genOpts.profile)
|
||||
|
||||
# Now, strip references to APIs that are not required.
|
||||
# At present such references may occur in:
|
||||
# Structs in <type category="struct"> 'structextends' attributes
|
||||
# Enums in <command> 'successcodes' and 'errorcodes' attributes
|
||||
self.stripUnsupportedAPIs(self.typedict, 'structextends', self.typedict)
|
||||
self.stripUnsupportedAPIs(self.cmddict, 'successcodes', self.enumdict)
|
||||
self.stripUnsupportedAPIs(self.cmddict, 'errorcodes', self.enumdict)
|
||||
|
||||
# @@May need to strip <spirvcapability> / <spirvextension> <enable>
|
||||
# tags of these forms:
|
||||
# <enable version="VK_API_VERSION_1_0"/>
|
||||
# <enable struct="VkPhysicalDeviceFeatures" feature="geometryShader" requires="VK_VERSION_1_0"/>
|
||||
# <enable extension="VK_KHR_shader_draw_parameters"/>
|
||||
# <enable property="VkPhysicalDeviceVulkan12Properties" member="shaderDenormPreserveFloat16" value="VK_TRUE" requires="VK_VERSION_1_2,VK_KHR_shader_float_controls"/>
|
||||
|
||||
# Pass 2: loop over specified API versions and extensions printing
|
||||
# declarations for required things which haven't already been
|
||||
# generated.
|
||||
|
|
File diff suppressed because one or more lines are too long
204
registry/vk.xml
204
registry/vk.xml
|
@ -155,7 +155,7 @@ branch of the member gitlab server.
|
|||
<type category="define" requires="VK_MAKE_API_VERSION">// Vulkan 1.2 version number
|
||||
#define <name>VK_API_VERSION_1_2</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, 0)// Patch version should always be set to 0</type>
|
||||
<type category="define">// Version of this file
|
||||
#define <name>VK_HEADER_VERSION</name> 196</type>
|
||||
#define <name>VK_HEADER_VERSION</name> 197</type>
|
||||
<type category="define" requires="VK_HEADER_VERSION">// Complete version of this file
|
||||
#define <name>VK_HEADER_VERSION_COMPLETE</name> <type>VK_MAKE_API_VERSION</type>(0, 1, 2, VK_HEADER_VERSION)</type>
|
||||
|
||||
|
@ -311,6 +311,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkAccelerationStructureMotionInfoFlagsNV</name>;</type>
|
||||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkAccelerationStructureMotionInstanceFlagsNV</name>;</type>
|
||||
<type bitvalues="VkFormatFeatureFlagBits2KHR" category="bitmask">typedef <type>VkFlags64</type> <name>VkFormatFeatureFlags2KHR</name>;</type>
|
||||
<type requires="VkRenderingFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkRenderingFlagsKHR</name>;</type>
|
||||
|
||||
<comment>WSI extensions</comment>
|
||||
<type requires="VkCompositeAlphaFlagBitsKHR" category="bitmask">typedef <type>VkFlags</type> <name>VkCompositeAlphaFlagsKHR</name>;</type>
|
||||
|
@ -419,7 +420,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type requires="VkVideoEncodeH264CreateFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH264CreateFlagsEXT</name>;</type>
|
||||
|
||||
<comment>Video Encode H.265 extension</comment>
|
||||
<type requires="VkVideoEncodeH265CapabilityFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CapabilityFlagsEXT</name>;</type>
|
||||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CapabilityFlagsEXT</name>;</type>
|
||||
<type requires="VkVideoEncodeH265InputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265InputModeFlagsEXT</name>;</type>
|
||||
<type requires="VkVideoEncodeH265OutputModeFlagBitsEXT" category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265OutputModeFlagsEXT</name>;</type>
|
||||
<type category="bitmask">typedef <type>VkFlags</type> <name>VkVideoEncodeH265CreateFlagsEXT</name>;</type>
|
||||
|
@ -636,6 +637,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type name="VkImageFormatConstraintsFlagBitsFUCHSIA" category="enum"/>
|
||||
<type name="VkImageConstraintsInfoFlagBitsFUCHSIA" category="enum"/>
|
||||
<type name="VkFormatFeatureFlagBits2KHR" category="enum"/>
|
||||
<type name="VkRenderingFlagBitsKHR" category="enum"/>
|
||||
|
||||
<comment>WSI extensions</comment>
|
||||
<type name="VkColorSpaceKHR" category="enum"/>
|
||||
|
@ -737,7 +739,6 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type name="VkVideoEncodeH264CreateFlagBitsEXT" category="enum"/>
|
||||
|
||||
<comment>Video H.265 Encode extensions</comment>
|
||||
<type name="VkVideoEncodeH265CapabilityFlagBitsEXT" category="enum"/>
|
||||
<type name="VkVideoEncodeH265InputModeFlagBitsEXT" category="enum"/>
|
||||
<type name="VkVideoEncodeH265OutputModeFlagBitsEXT" category="enum"/>
|
||||
<type name="VkVideoEncodeH265CtbSizeFlagBitsEXT" category="enum"/>
|
||||
|
@ -1387,7 +1388,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member noautovalidity="true" optional="true">const <type>VkPipelineColorBlendStateCreateInfo</type>* <name>pColorBlendState</name></member>
|
||||
<member optional="true">const <type>VkPipelineDynamicStateCreateInfo</type>* <name>pDynamicState</name></member>
|
||||
<member><type>VkPipelineLayout</type> <name>layout</name><comment>Interface layout of the pipeline</comment></member>
|
||||
<member><type>VkRenderPass</type> <name>renderPass</name></member>
|
||||
<member optional="true"><type>VkRenderPass</type> <name>renderPass</name></member>
|
||||
<member><type>uint32_t</type> <name>subpass</name></member>
|
||||
<member noautovalidity="true" optional="true"><type>VkPipeline</type> <name>basePipelineHandle</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of</comment></member>
|
||||
<member><type>int32_t</type> <name>basePipelineIndex</name><comment>If VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of</comment></member>
|
||||
|
@ -1752,7 +1753,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkFramebufferCreateFlags</type> <name>flags</name></member>
|
||||
<member><type>VkRenderPass</type> <name>renderPass</name></member>
|
||||
<member><type>VkRenderPass</type> <name>renderPass</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
|
||||
<member noautovalidity="true" len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</name></member>
|
||||
<member><type>uint32_t</type> <name>width</name></member>
|
||||
|
@ -2675,7 +2676,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member len="splitInstanceBindRegionCount">const <type>VkRect2D</type>* <name>pSplitInstanceBindRegions</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkBindImageMemoryDeviceGroupInfoKHR" alias="VkBindImageMemoryDeviceGroupInfo"/>
|
||||
<type category="struct" name="VkDeviceGroupRenderPassBeginInfo" structextends="VkRenderPassBeginInfo">
|
||||
<type category="struct" name="VkDeviceGroupRenderPassBeginInfo" structextends="VkRenderPassBeginInfo,VkRenderingInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint32_t</type> <name>deviceMask</name></member>
|
||||
|
@ -5675,7 +5676,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member><type>VkDeviceSize</type> <name>srcBufferRange</name></member>
|
||||
<member><type>VkVideoPictureResourceKHR</type> <name>dstPictureResource</name></member>
|
||||
<member>const <type>VkVideoReferenceSlotKHR</type>* <name>pSetupReferenceSlot</name></member>
|
||||
<member><type>uint32_t</type> <name>referenceSlotCount</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>referenceSlotCount</name></member>
|
||||
<member len="referenceSlotCount">const <type>VkVideoReferenceSlotKHR</type>* <name>pReferenceSlots</name></member>
|
||||
</type>
|
||||
<comment>Video Decode Codec Standard specific structures</comment>
|
||||
|
@ -5690,7 +5691,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264AspectRatioIdc"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264HrdParameters"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264SpsVuiFlags"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264WeightedBiPredIdc"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264WeightedBipredIdc"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264PpsFlags"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264SliceType"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std.h" name="StdVideoH264CabacInitIdc"/>
|
||||
|
@ -5706,7 +5707,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264ReferenceInfoFlags"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264MvcElement"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h264std_decode.h" name="StdVideoDecodeH264MvcElementFlags"/>
|
||||
<type category="struct" name="VkVideoDecodeH264ProfileEXT" structextends="VkVideoProfileKHR">
|
||||
<type category="struct" name="VkVideoDecodeH264ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>StdVideoH264ProfileIdc</type> <name>stdProfileIdc</name></member>
|
||||
|
@ -5776,12 +5777,14 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SubLayerHrdParameters"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265HrdFlags"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SpsVuiFlags"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265SliceType"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std.h" name="StdVideoH265PictureType"/>
|
||||
<type category="include" name="vk_video/vulkan_video_codec_h265std_decode.h">#include "vk_video/vulkan_video_codec_h265std_decode.h"</type>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265PictureInfo"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265ReferenceInfo"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265PictureInfoFlags"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_decode.h" name="StdVideoDecodeH265ReferenceInfoFlags"/>
|
||||
<type category="struct" name="VkVideoDecodeH265ProfileEXT" structextends="VkVideoProfileKHR">
|
||||
<type category="struct" name="VkVideoDecodeH265ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>StdVideoH265ProfileIdc</type> <name>stdProfileIdc</name></member>
|
||||
|
@ -5855,7 +5858,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member><type>VkVideoCodingQualityPresetFlagsKHR</type> <name>codecQualityPreset</name></member>
|
||||
<member><type>VkVideoSessionKHR</type> <name>videoSession</name></member>
|
||||
<member optional="true"><type>VkVideoSessionParametersKHR</type> <name>videoSessionParameters</name></member>
|
||||
<member><type>uint32_t</type> <name>referenceSlotCount</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>referenceSlotCount</name></member>
|
||||
<member len="referenceSlotCount">const <type>VkVideoReferenceSlotKHR</type>* <name>pReferenceSlots</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkVideoEndCodingInfoKHR">
|
||||
|
@ -5879,7 +5882,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member><type>VkDeviceSize</type> <name>dstBitstreamBufferMaxRange</name></member>
|
||||
<member><type>VkVideoPictureResourceKHR</type> <name>srcPictureResource</name></member>
|
||||
<member>const <type>VkVideoReferenceSlotKHR</type>* <name>pSetupReferenceSlot</name></member>
|
||||
<member><type>uint32_t</type> <name>referenceSlotCount</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>referenceSlotCount</name></member>
|
||||
<member len="referenceSlotCount">const <type>VkVideoReferenceSlotKHR</type>* <name>pReferenceSlots</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkVideoEncodeRateControlInfoKHR" structextends="VkVideoCodingControlInfoKHR">
|
||||
|
@ -5964,7 +5967,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member><type>uint32_t</type> <name>ppsIdEntryCount</name></member>
|
||||
<member len="ppsIdEntryCount">const <type>uint8_t</type>* <name>ppsIdEntries</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkVideoEncodeH264ProfileEXT" structextends="VkVideoProfileKHR">
|
||||
<type category="struct" name="VkVideoEncodeH264ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>StdVideoH264ProfileIdc</type> <name>stdProfileIdc</name></member>
|
||||
|
@ -6010,6 +6013,9 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265SliceHeader"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceInfo"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceModifications"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265SliceHeaderFlags"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceInfoFlags"/>
|
||||
<type requires="vk_video/vulkan_video_codec_h265std_encode.h" name="StdVideoEncodeH265ReferenceModificationFlags"/>
|
||||
<type category="struct" name="VkVideoEncodeH265SessionParametersAddInfoEXT" structextends="VkVideoSessionParametersUpdateInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT"><type>VkStructureType</type><name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
|
@ -6053,7 +6059,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member optional="true">const <type>VkVideoEncodeH265ReferenceListsEXT</type>* <name>pReferenceFinalLists</name></member>
|
||||
<member>const <type>StdVideoEncodeH265SliceHeader</type>* <name>pSliceHeaderStd</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkVideoEncodeH265ProfileEXT" structextends="VkVideoProfileKHR">
|
||||
<type category="struct" name="VkVideoEncodeH265ProfileEXT" structextends="VkVideoProfileKHR,VkQueryPoolCreateInfo,VkFormatProperties2,VkImageCreateInfo,VkImageViewCreateInfo,VkBufferCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_EXT"><type>VkStructureType</type><name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>StdVideoH265ProfileIdc</type> <name>stdProfileIdc</name></member>
|
||||
|
@ -6369,6 +6375,82 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<member><type>VkChromaLocation</type> <name>suggestedXChromaOffset</name></member>
|
||||
<member><type>VkChromaLocation</type> <name>suggestedYChromaOffset</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPipelineRenderingCreateInfoKHR" structextends="VkGraphicsPipelineCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint32_t</type> <name>viewMask</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
|
||||
<member len="colorAttachmentCount">const <type>VkFormat</type>* <name>pColorAttachmentFormats</name></member>
|
||||
<member><type>VkFormat</type> <name>depthAttachmentFormat</name></member>
|
||||
<member><type>VkFormat</type> <name>stencilAttachmentFormat</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkRenderingInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_RENDERING_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkRenderingFlagsKHR</type> <name>flags</name></member>
|
||||
<member><type>VkRect2D</type> <name>renderArea</name></member>
|
||||
<member><type>uint32_t</type> <name>layerCount</name></member>
|
||||
<member><type>uint32_t</type> <name>viewMask</name></member>
|
||||
<member optional="true"><type>uint32_t</type> <name>colorAttachmentCount</name></member>
|
||||
<member len="colorAttachmentCount">const <type>VkRenderingAttachmentInfoKHR</type>* <name>pColorAttachments</name></member>
|
||||
<member optional="true">const <type>VkRenderingAttachmentInfoKHR</type>* <name>pDepthAttachment</name></member>
|
||||
<member optional="true">const <type>VkRenderingAttachmentInfoKHR</type>* <name>pStencilAttachment</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkRenderingAttachmentInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkImageView</type> <name>imageView</name></member>
|
||||
<member><type>VkImageLayout</type> <name>imageLayout</name></member>
|
||||
<member optional="true"><type>VkResolveModeFlagBits</type> <name>resolveMode</name></member>
|
||||
<member optional="true"><type>VkImageView</type> <name>resolveImageView</name></member>
|
||||
<member><type>VkImageLayout</type> <name>resolveImageLayout</name></member>
|
||||
<member><type>VkAttachmentLoadOp</type> <name>loadOp</name></member>
|
||||
<member><type>VkAttachmentStoreOp</type> <name>storeOp</name></member>
|
||||
<member><type>VkClearValue</type> <name>clearValue</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkRenderingFragmentShadingRateAttachmentInfoKHR" structextends="VkRenderingInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkImageView</type> <name>imageView</name></member>
|
||||
<member><type>VkImageLayout</type> <name>imageLayout</name></member>
|
||||
<member><type>VkExtent2D</type> <name>shadingRateAttachmentTexelSize</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkRenderingFragmentDensityMapAttachmentInfoEXT" structextends="VkRenderingInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkImageView</type> <name>imageView</name></member>
|
||||
<member><type>VkImageLayout</type> <name>imageLayout</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkPhysicalDeviceDynamicRenderingFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true" noautovalidity="true"><type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>dynamicRendering</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkCommandBufferInheritanceRenderingInfoKHR" structextends="VkCommandBufferInheritanceInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member optional="true"><type>VkRenderingFlagsKHR</type> <name>flags</name></member>
|
||||
<member><type>uint32_t</type> <name>viewMask</name></member>
|
||||
<member><type>uint32_t</type> <name>colorAttachmentCount</name></member>
|
||||
<member len="colorAttachmentCount">const <type>VkFormat</type>* <name>pColorAttachmentFormats</name></member>
|
||||
<member><type>VkFormat</type> <name>depthAttachmentFormat</name></member>
|
||||
<member><type>VkFormat</type> <name>stencilAttachmentFormat</name></member>
|
||||
<member optional="true"><type>VkSampleCountFlagBits</type> <name>rasterizationSamples</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkAttachmentSampleCountInfoAMD" structextends="VkCommandBufferInheritanceInfo,VkGraphicsPipelineCreateInfo">
|
||||
<member values="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>uint32_t</type> <name>colorAttachmentCount</name></member>
|
||||
<member optional="false,true" len="colorAttachmentCount">const <type>VkSampleCountFlagBits</type>* <name>pColorAttachmentSamples</name></member>
|
||||
<member optional="true"><type>VkSampleCountFlagBits</type> <name>depthStencilAttachmentSamples</name></member>
|
||||
</type>
|
||||
<type category="struct" name="VkAttachmentSampleCountInfoNV" alias="VkAttachmentSampleCountInfoAMD"/>
|
||||
<type category="struct" name="VkMultiviewPerViewAttributesInfoNVX" structextends="VkCommandBufferInheritanceInfo,VkGraphicsPipelineCreateInfo,VkRenderingInfoKHR">
|
||||
<member values="VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"><type>VkStructureType</type> <name>sType</name></member>
|
||||
<member optional="true">const <type>void</type>* <name>pNext</name></member>
|
||||
<member><type>VkBool32</type> <name>perViewAttributes</name></member>
|
||||
<member><type>VkBool32</type> <name>perViewAttributesPositionXOnly</name></member>
|
||||
</type>
|
||||
</types>
|
||||
<comment>Vulkan enumerant (token) definitions</comment>
|
||||
|
||||
|
@ -7987,17 +8069,6 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum bitpos="32" name="VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR"/>
|
||||
<enum bitpos="33" name="VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR"/>
|
||||
</enums>
|
||||
<enums name="VkVideoEncodeH265CapabilityFlagBitsEXT" type="bitmask">
|
||||
<enum bitpos="0" name="VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BI_PRED_IMPLICIT_BIT_EXT"/>
|
||||
<enum bitpos="1" name="VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_8X8_BIT_EXT"/>
|
||||
<enum bitpos="2" name="VK_VIDEO_ENCODE_H265_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT"/>
|
||||
<enum bitpos="3" name="VK_VIDEO_ENCODE_H265_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT"/>
|
||||
<enum bitpos="4" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT"/>
|
||||
<enum bitpos="5" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT"/>
|
||||
<enum bitpos="6" name="VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT"/>
|
||||
<enum bitpos="7" name="VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT"/>
|
||||
<enum bitpos="8" name="VK_VIDEO_ENCODE_H265_CAPABILITY_EVENLY_DISTRIBUTED_SLICE_SIZE_BIT_EXT"/>
|
||||
</enums>
|
||||
<enums name="VkVideoEncodeH265InputModeFlagBitsEXT" type="bitmask">
|
||||
<enum bitpos="0" name="VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT"/>
|
||||
<enum bitpos="1" name="VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_BIT_EXT"/>
|
||||
|
@ -8014,6 +8085,11 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum bitpos="2" name="VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT"/>
|
||||
<enum bitpos="3" name="VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT"/>
|
||||
</enums>
|
||||
<enums name="VkRenderingFlagBitsKHR" type="bitmask">
|
||||
<enum bitpos="0" name="VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR"/>
|
||||
<enum bitpos="1" name="VK_RENDERING_SUSPENDING_BIT_KHR"/>
|
||||
<enum bitpos="2" name="VK_RENDERING_RESUMING_BIT_KHR"/>
|
||||
</enums>
|
||||
|
||||
<commands comment="Vulkan command definitions">
|
||||
<command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY,VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_LAYER_NOT_PRESENT,VK_ERROR_EXTENSION_NOT_PRESENT,VK_ERROR_INCOMPATIBLE_DRIVER">
|
||||
|
@ -11124,6 +11200,15 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<param><type>VkBufferCollectionFUCHSIA</type> <name>collection</name></param>
|
||||
<param><type>VkBufferCollectionPropertiesFUCHSIA</type>* <name>pProperties</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="outside" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdBeginRenderingKHR</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
<param>const <type>VkRenderingInfoKHR</type>* <name>pRenderingInfo</name></param>
|
||||
</command>
|
||||
<command queues="graphics" renderpass="inside" cmdbufferlevel="primary,secondary">
|
||||
<proto><type>void</type> <name>vkCmdEndRenderingKHR</name></proto>
|
||||
<param externsync="true"><type>VkCommandBuffer</type> <name>commandBuffer</name></param>
|
||||
</command>
|
||||
</commands>
|
||||
|
||||
<feature api="vulkan" name="VK_VERSION_1_0" number="1.0" comment="Vulkan core API interface definitions">
|
||||
|
@ -12761,7 +12846,6 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
|
||||
<enum bitpos="17" extends="VkVideoCodecOperationFlagBitsKHR" name="VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT" protect="VK_ENABLE_BETA_EXTENSIONS"/>
|
||||
|
||||
<type name="VkVideoEncodeH265CapabilityFlagBitsEXT"/>
|
||||
<type name="VkVideoEncodeH265CapabilityFlagsEXT"/>
|
||||
<type name="VkVideoEncodeH265InputModeFlagBitsEXT"/>
|
||||
<type name="VkVideoEncodeH265InputModeFlagsEXT"/>
|
||||
|
@ -12833,12 +12917,47 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum value=""VK_AMD_extension_44"" name="VK_AMD_EXTENSION_44_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_AMD_extension_45" number="45" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
|
||||
<extension name="VK_KHR_dynamic_rendering" number="45" author="KHR" type="device" requires="VK_KHR_get_physical_device_properties2" contact="Tobias Hector @tobski" supported="vulkan">
|
||||
<require>
|
||||
<enum value="0" name="VK_AMD_EXTENSION_45_SPEC_VERSION"/>
|
||||
<enum value=""VK_AMD_extension_45"" name="VK_AMD_EXTENSION_45_EXTENSION_NAME"/>
|
||||
<enum bitpos="21" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RESERVED_21_BIT_AMD"/>
|
||||
<enum bitpos="22" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_CREATE_RESERVED_22_BIT_AMD"/>
|
||||
<enum value="1" name="VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION"/>
|
||||
<enum value=""VK_KHR_dynamic_rendering"" name="VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME"/>
|
||||
<command name="vkCmdBeginRenderingKHR"/>
|
||||
<command name="vkCmdEndRenderingKHR"/>
|
||||
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDERING_INFO_KHR"/>
|
||||
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR"/>
|
||||
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR"/>
|
||||
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR"/>
|
||||
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR"/>
|
||||
<enum offset="0" extends="VkAttachmentStoreOp" extnumber="302" name="VK_ATTACHMENT_STORE_OP_NONE_KHR"/>
|
||||
<type name="VkRenderingInfoKHR"/>
|
||||
<type name="VkRenderingAttachmentInfoKHR"/>
|
||||
<type name="VkPipelineRenderingCreateInfoKHR"/>
|
||||
<type name="VkPhysicalDeviceDynamicRenderingFeaturesKHR"/>
|
||||
<type name="VkCommandBufferInheritanceRenderingInfoKHR"/>
|
||||
<type name="VkRenderingFlagsKHR"/>
|
||||
<type name="VkRenderingFlagBitsKHR"/>
|
||||
</require>
|
||||
<require extension="VK_KHR_fragment_shading_rate">
|
||||
<enum bitpos="21" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"/>
|
||||
<enum offset="6" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"/>
|
||||
<type name="VkRenderingFragmentShadingRateAttachmentInfoKHR"/>
|
||||
</require>
|
||||
<require extension="VK_EXT_fragment_density_map">
|
||||
<enum bitpos="22" extends="VkPipelineCreateFlagBits" name="VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"/>
|
||||
<enum offset="7" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"/>
|
||||
<type name="VkRenderingFragmentDensityMapAttachmentInfoEXT"/>
|
||||
</require>
|
||||
<require extension="VK_AMD_mixed_attachment_samples">
|
||||
<enum offset="8" extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"/>
|
||||
<type name="VkAttachmentSampleCountInfoAMD"/>
|
||||
</require>
|
||||
<require extension="VK_NV_framebuffer_mixed_samples">
|
||||
<enum extends="VkStructureType" name="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV" alias="VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"/>
|
||||
<type name="VkAttachmentSampleCountInfoNV"/>
|
||||
</require>
|
||||
<require extension="VK_NVX_multiview_per_view_attributes">
|
||||
<enum offset="9" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"/>
|
||||
<type name="VkMultiviewPerViewAttributesInfoNVX"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_AMD_extension_46" number="46" author="AMD" contact="Daniel Rakos @drakos-amd" supported="disabled">
|
||||
|
@ -16196,7 +16315,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<require>
|
||||
<enum value="2" name="VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION"/>
|
||||
<enum value=""VK_QCOM_render_pass_store_ops"" name="VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME"/>
|
||||
<enum extends="VkAttachmentStoreOp" name="VK_ATTACHMENT_STORE_OP_NONE_QCOM" alias="VK_ATTACHMENT_STORE_OP_NONE_EXT"/>
|
||||
<enum extends="VkAttachmentStoreOp" name="VK_ATTACHMENT_STORE_OP_NONE_QCOM" alias="VK_ATTACHMENT_STORE_OP_NONE_KHR"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_QCOM_extension_303" number="303" author="QCOM" contact="Bill Licea-Kane @wwlk" supported="disabled">
|
||||
|
@ -16289,6 +16408,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum offset="1" extends="VkImageLayout" name="VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR"/>
|
||||
<enum value="0" extends="VkPipelineStageFlagBits" name="VK_PIPELINE_STAGE_NONE_KHR"/>
|
||||
<enum value="0" extends="VkAccessFlagBits" name="VK_ACCESS_NONE_KHR"/>
|
||||
<type name="VkFlags64"/>
|
||||
<type name="VkPipelineStageFlags2KHR"/>
|
||||
<type name="VkPipelineStageFlagBits2KHR"/>
|
||||
<type name="VkAccessFlags2KHR"/>
|
||||
|
@ -17115,7 +17235,7 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum value="1" name="VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION"/>
|
||||
<enum value=""VK_EXT_load_store_op_none"" name="VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME"/>
|
||||
<enum offset="0" extends="VkAttachmentLoadOp" name="VK_ATTACHMENT_LOAD_OP_NONE_EXT"/>
|
||||
<enum offset="0" extends="VkAttachmentStoreOp" extnumber="302" name="VK_ATTACHMENT_STORE_OP_NONE_EXT"/>
|
||||
<enum extends="VkAttachmentStoreOp" name="VK_ATTACHMENT_STORE_OP_NONE_EXT" alias="VK_ATTACHMENT_STORE_OP_NONE_KHR"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_FB_extension_402" number="402" author="FB" contact="Artem Bolgar @artyom17" supported="disabled">
|
||||
|
@ -17312,6 +17432,24 @@ typedef void <name>CAMetalLayer</name>;
|
|||
<enum value=""VK_NV_extension_430"" name="VK_NV_EXTENSION_430_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_NV_extension_431" number="431" author="NV" contact="Sourav Parmar @souravpNV" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_NV_EXTENSION_431_SPEC_VERSION"/>
|
||||
<enum value=""VK_NV_extension_431"" name="VK_NV_EXTENSION_431_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_NV_extension_432" number="432" author="NV" contact="Sourav Parmar @souravpNV" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_NV_EXTENSION_432_SPEC_VERSION"/>
|
||||
<enum value=""VK_NV_extension_432"" name="VK_NV_EXTENSION_432_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
<extension name="VK_NV_extension_433" number="433" author="NV" contact="Sourav Parmar @souravpNV" supported="disabled">
|
||||
<require>
|
||||
<enum value="0" name="VK_NV_EXTENSION_433_SPEC_VERSION"/>
|
||||
<enum value=""VK_NV_extension_433"" name="VK_NV_EXTENSION_433_EXTENSION_NAME"/>
|
||||
</require>
|
||||
</extension>
|
||||
</extensions>
|
||||
<spirvextensions comment="SPIR-V Extensions allowed in Vulkan and what is required to use it">
|
||||
<spirvextension name="SPV_KHR_variable_pointers">
|
||||
|
|
Loading…
Reference in a new issue