3 * Copyright (c) 2019-2022 The Khronos Group Inc.
4 * Copyright (c) 2019-2022 Valve Corporation
5 * Copyright (c) 2019-2022 LunarG, Inc.
6 * Copyright (c) 2023-2024 RasterGrid Kft.
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
20 * Author: Charles Giessen <charles@lunarg.com>
25 * This file is generated from the Khronos Vulkan XML API Registry.
28 #include "vulkaninfo.h"
29 #include "outputprinter.h"
32 std::string
to_hex_str(const T i
) {
33 std::stringstream stream
;
34 stream
<< "0x" << std::setfill('0') << std::setw(sizeof(T
)) << std::hex
<< i
;
39 std::string
to_hex_str(Printer
&p
, const T i
) {
40 if (p
.Type() == OutputType::json
)
41 return std::to_string(i
);
42 else if (p
.Type() == OutputType::vkconfig_output
)
43 return std::string("\"") + to_hex_str(i
) + std::string("\"");
48 std::string
StdVideoH264ChromaFormatIdcString(StdVideoH264ChromaFormatIdc value
) {
50 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME
: return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_MONOCHROME";
51 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_420
: return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_420";
52 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_422
: return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_422";
53 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_444
: return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_444";
54 case STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID
: return "STD_VIDEO_H264_CHROMA_FORMAT_IDC_INVALID";
55 default: return std::string("UNKNOWN_StdVideoH264ChromaFormatIdc_value") + std::to_string(value
);
58 void DumpStdVideoH264ChromaFormatIdc(Printer
&p
, std::string name
, StdVideoH264ChromaFormatIdc value
) {
59 p
.PrintKeyString(name
, StdVideoH264ChromaFormatIdcString(value
));
61 std::string
StdVideoH264ProfileIdcString(StdVideoH264ProfileIdc value
) {
63 case STD_VIDEO_H264_PROFILE_IDC_BASELINE
: return "STD_VIDEO_H264_PROFILE_IDC_BASELINE";
64 case STD_VIDEO_H264_PROFILE_IDC_MAIN
: return "STD_VIDEO_H264_PROFILE_IDC_MAIN";
65 case STD_VIDEO_H264_PROFILE_IDC_HIGH
: return "STD_VIDEO_H264_PROFILE_IDC_HIGH";
66 case STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE
: return "STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE";
67 case STD_VIDEO_H264_PROFILE_IDC_INVALID
: return "STD_VIDEO_H264_PROFILE_IDC_INVALID";
68 default: return std::string("UNKNOWN_StdVideoH264ProfileIdc_value") + std::to_string(value
);
71 void DumpStdVideoH264ProfileIdc(Printer
&p
, std::string name
, StdVideoH264ProfileIdc value
) {
72 p
.PrintKeyString(name
, StdVideoH264ProfileIdcString(value
));
74 std::string
StdVideoH264LevelIdcString(StdVideoH264LevelIdc value
) {
76 case STD_VIDEO_H264_LEVEL_IDC_1_0
: return "STD_VIDEO_H264_LEVEL_IDC_1_0";
77 case STD_VIDEO_H264_LEVEL_IDC_1_1
: return "STD_VIDEO_H264_LEVEL_IDC_1_1";
78 case STD_VIDEO_H264_LEVEL_IDC_1_2
: return "STD_VIDEO_H264_LEVEL_IDC_1_2";
79 case STD_VIDEO_H264_LEVEL_IDC_1_3
: return "STD_VIDEO_H264_LEVEL_IDC_1_3";
80 case STD_VIDEO_H264_LEVEL_IDC_2_0
: return "STD_VIDEO_H264_LEVEL_IDC_2_0";
81 case STD_VIDEO_H264_LEVEL_IDC_2_1
: return "STD_VIDEO_H264_LEVEL_IDC_2_1";
82 case STD_VIDEO_H264_LEVEL_IDC_2_2
: return "STD_VIDEO_H264_LEVEL_IDC_2_2";
83 case STD_VIDEO_H264_LEVEL_IDC_3_0
: return "STD_VIDEO_H264_LEVEL_IDC_3_0";
84 case STD_VIDEO_H264_LEVEL_IDC_3_1
: return "STD_VIDEO_H264_LEVEL_IDC_3_1";
85 case STD_VIDEO_H264_LEVEL_IDC_3_2
: return "STD_VIDEO_H264_LEVEL_IDC_3_2";
86 case STD_VIDEO_H264_LEVEL_IDC_4_0
: return "STD_VIDEO_H264_LEVEL_IDC_4_0";
87 case STD_VIDEO_H264_LEVEL_IDC_4_1
: return "STD_VIDEO_H264_LEVEL_IDC_4_1";
88 case STD_VIDEO_H264_LEVEL_IDC_4_2
: return "STD_VIDEO_H264_LEVEL_IDC_4_2";
89 case STD_VIDEO_H264_LEVEL_IDC_5_0
: return "STD_VIDEO_H264_LEVEL_IDC_5_0";
90 case STD_VIDEO_H264_LEVEL_IDC_5_1
: return "STD_VIDEO_H264_LEVEL_IDC_5_1";
91 case STD_VIDEO_H264_LEVEL_IDC_5_2
: return "STD_VIDEO_H264_LEVEL_IDC_5_2";
92 case STD_VIDEO_H264_LEVEL_IDC_6_0
: return "STD_VIDEO_H264_LEVEL_IDC_6_0";
93 case STD_VIDEO_H264_LEVEL_IDC_6_1
: return "STD_VIDEO_H264_LEVEL_IDC_6_1";
94 case STD_VIDEO_H264_LEVEL_IDC_6_2
: return "STD_VIDEO_H264_LEVEL_IDC_6_2";
95 case STD_VIDEO_H264_LEVEL_IDC_INVALID
: return "STD_VIDEO_H264_LEVEL_IDC_INVALID";
96 default: return std::string("UNKNOWN_StdVideoH264LevelIdc_value") + std::to_string(value
);
99 void DumpStdVideoH264LevelIdc(Printer
&p
, std::string name
, StdVideoH264LevelIdc value
) {
100 p
.PrintKeyString(name
, StdVideoH264LevelIdcString(value
));
102 std::string
StdVideoH264PocTypeString(StdVideoH264PocType value
) {
104 case STD_VIDEO_H264_POC_TYPE_0
: return "STD_VIDEO_H264_POC_TYPE_0";
105 case STD_VIDEO_H264_POC_TYPE_1
: return "STD_VIDEO_H264_POC_TYPE_1";
106 case STD_VIDEO_H264_POC_TYPE_2
: return "STD_VIDEO_H264_POC_TYPE_2";
107 case STD_VIDEO_H264_POC_TYPE_INVALID
: return "STD_VIDEO_H264_POC_TYPE_INVALID";
108 default: return std::string("UNKNOWN_StdVideoH264PocType_value") + std::to_string(value
);
111 void DumpStdVideoH264PocType(Printer
&p
, std::string name
, StdVideoH264PocType value
) {
112 p
.PrintKeyString(name
, StdVideoH264PocTypeString(value
));
114 std::string
StdVideoH264AspectRatioIdcString(StdVideoH264AspectRatioIdc value
) {
116 case STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_UNSPECIFIED";
117 case STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_SQUARE";
118 case STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_12_11";
119 case STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_10_11";
120 case STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_16_11";
121 case STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_40_33";
122 case STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_24_11";
123 case STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_20_11";
124 case STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_32_11";
125 case STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_80_33";
126 case STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_18_11";
127 case STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_15_11";
128 case STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_64_33";
129 case STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_160_99";
130 case STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_4_3";
131 case STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_3_2";
132 case STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_2_1";
133 case STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_EXTENDED_SAR";
134 case STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID
: return "STD_VIDEO_H264_ASPECT_RATIO_IDC_INVALID";
135 default: return std::string("UNKNOWN_StdVideoH264AspectRatioIdc_value") + std::to_string(value
);
138 void DumpStdVideoH264AspectRatioIdc(Printer
&p
, std::string name
, StdVideoH264AspectRatioIdc value
) {
139 p
.PrintKeyString(name
, StdVideoH264AspectRatioIdcString(value
));
141 std::string
StdVideoH264WeightedBipredIdcString(StdVideoH264WeightedBipredIdc value
) {
143 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT
: return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_DEFAULT";
144 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT
: return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_EXPLICIT";
145 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT
: return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_IMPLICIT";
146 case STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID
: return "STD_VIDEO_H264_WEIGHTED_BIPRED_IDC_INVALID";
147 default: return std::string("UNKNOWN_StdVideoH264WeightedBipredIdc_value") + std::to_string(value
);
150 void DumpStdVideoH264WeightedBipredIdc(Printer
&p
, std::string name
, StdVideoH264WeightedBipredIdc value
) {
151 p
.PrintKeyString(name
, StdVideoH264WeightedBipredIdcString(value
));
153 std::string
StdVideoH264ModificationOfPicNumsIdcString(StdVideoH264ModificationOfPicNumsIdc value
) {
155 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT
: return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_SUBTRACT";
156 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD
: return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_SHORT_TERM_ADD";
157 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM
: return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_LONG_TERM";
158 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END
: return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_END";
159 case STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID
: return "STD_VIDEO_H264_MODIFICATION_OF_PIC_NUMS_IDC_INVALID";
160 default: return std::string("UNKNOWN_StdVideoH264ModificationOfPicNumsIdc_value") + std::to_string(value
);
163 void DumpStdVideoH264ModificationOfPicNumsIdc(Printer
&p
, std::string name
, StdVideoH264ModificationOfPicNumsIdc value
) {
164 p
.PrintKeyString(name
, StdVideoH264ModificationOfPicNumsIdcString(value
));
166 std::string
StdVideoH264MemMgmtControlOpString(StdVideoH264MemMgmtControlOp value
) {
168 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END
: return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_END";
169 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM
: return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_SHORT_TERM";
170 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM
: return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_LONG_TERM";
171 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM
: return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_LONG_TERM";
172 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX
: return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_SET_MAX_LONG_TERM_INDEX";
173 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL
: return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_UNMARK_ALL";
174 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM
: return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_MARK_CURRENT_AS_LONG_TERM";
175 case STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID
: return "STD_VIDEO_H264_MEM_MGMT_CONTROL_OP_INVALID";
176 default: return std::string("UNKNOWN_StdVideoH264MemMgmtControlOp_value") + std::to_string(value
);
179 void DumpStdVideoH264MemMgmtControlOp(Printer
&p
, std::string name
, StdVideoH264MemMgmtControlOp value
) {
180 p
.PrintKeyString(name
, StdVideoH264MemMgmtControlOpString(value
));
182 std::string
StdVideoH264CabacInitIdcString(StdVideoH264CabacInitIdc value
) {
184 case STD_VIDEO_H264_CABAC_INIT_IDC_0
: return "STD_VIDEO_H264_CABAC_INIT_IDC_0";
185 case STD_VIDEO_H264_CABAC_INIT_IDC_1
: return "STD_VIDEO_H264_CABAC_INIT_IDC_1";
186 case STD_VIDEO_H264_CABAC_INIT_IDC_2
: return "STD_VIDEO_H264_CABAC_INIT_IDC_2";
187 case STD_VIDEO_H264_CABAC_INIT_IDC_INVALID
: return "STD_VIDEO_H264_CABAC_INIT_IDC_INVALID";
188 default: return std::string("UNKNOWN_StdVideoH264CabacInitIdc_value") + std::to_string(value
);
191 void DumpStdVideoH264CabacInitIdc(Printer
&p
, std::string name
, StdVideoH264CabacInitIdc value
) {
192 p
.PrintKeyString(name
, StdVideoH264CabacInitIdcString(value
));
194 std::string
StdVideoH264DisableDeblockingFilterIdcString(StdVideoH264DisableDeblockingFilterIdc value
) {
196 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED
: return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_DISABLED";
197 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED
: return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_ENABLED";
198 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL
: return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_PARTIAL";
199 case STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID
: return "STD_VIDEO_H264_DISABLE_DEBLOCKING_FILTER_IDC_INVALID";
200 default: return std::string("UNKNOWN_StdVideoH264DisableDeblockingFilterIdc_value") + std::to_string(value
);
203 void DumpStdVideoH264DisableDeblockingFilterIdc(Printer
&p
, std::string name
, StdVideoH264DisableDeblockingFilterIdc value
) {
204 p
.PrintKeyString(name
, StdVideoH264DisableDeblockingFilterIdcString(value
));
206 std::string
StdVideoH264SliceTypeString(StdVideoH264SliceType value
) {
208 case STD_VIDEO_H264_SLICE_TYPE_P
: return "STD_VIDEO_H264_SLICE_TYPE_P";
209 case STD_VIDEO_H264_SLICE_TYPE_B
: return "STD_VIDEO_H264_SLICE_TYPE_B";
210 case STD_VIDEO_H264_SLICE_TYPE_I
: return "STD_VIDEO_H264_SLICE_TYPE_I";
211 case STD_VIDEO_H264_SLICE_TYPE_INVALID
: return "STD_VIDEO_H264_SLICE_TYPE_INVALID";
212 default: return std::string("UNKNOWN_StdVideoH264SliceType_value") + std::to_string(value
);
215 void DumpStdVideoH264SliceType(Printer
&p
, std::string name
, StdVideoH264SliceType value
) {
216 p
.PrintKeyString(name
, StdVideoH264SliceTypeString(value
));
218 std::string
StdVideoH264PictureTypeString(StdVideoH264PictureType value
) {
220 case STD_VIDEO_H264_PICTURE_TYPE_P
: return "STD_VIDEO_H264_PICTURE_TYPE_P";
221 case STD_VIDEO_H264_PICTURE_TYPE_B
: return "STD_VIDEO_H264_PICTURE_TYPE_B";
222 case STD_VIDEO_H264_PICTURE_TYPE_I
: return "STD_VIDEO_H264_PICTURE_TYPE_I";
223 case STD_VIDEO_H264_PICTURE_TYPE_IDR
: return "STD_VIDEO_H264_PICTURE_TYPE_IDR";
224 case STD_VIDEO_H264_PICTURE_TYPE_INVALID
: return "STD_VIDEO_H264_PICTURE_TYPE_INVALID";
225 default: return std::string("UNKNOWN_StdVideoH264PictureType_value") + std::to_string(value
);
228 void DumpStdVideoH264PictureType(Printer
&p
, std::string name
, StdVideoH264PictureType value
) {
229 p
.PrintKeyString(name
, StdVideoH264PictureTypeString(value
));
231 std::string
StdVideoH264NonVclNaluTypeString(StdVideoH264NonVclNaluType value
) {
233 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS
: return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_SPS";
234 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS
: return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PPS";
235 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD
: return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_AUD";
236 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX
: return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PREFIX";
237 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE
: return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_SEQUENCE";
238 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM
: return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_END_OF_STREAM";
239 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED
: return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_PRECODED";
240 case STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID
: return "STD_VIDEO_H264_NON_VCL_NALU_TYPE_INVALID";
241 default: return std::string("UNKNOWN_StdVideoH264NonVclNaluType_value") + std::to_string(value
);
244 void DumpStdVideoH264NonVclNaluType(Printer
&p
, std::string name
, StdVideoH264NonVclNaluType value
) {
245 p
.PrintKeyString(name
, StdVideoH264NonVclNaluTypeString(value
));
247 std::string
StdVideoDecodeH264FieldOrderCountString(StdVideoDecodeH264FieldOrderCount value
) {
249 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP
: return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_TOP";
250 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM
: return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_BOTTOM";
251 case STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID
: return "STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_INVALID";
252 default: return std::string("UNKNOWN_StdVideoDecodeH264FieldOrderCount_value") + std::to_string(value
);
255 void DumpStdVideoDecodeH264FieldOrderCount(Printer
&p
, std::string name
, StdVideoDecodeH264FieldOrderCount value
) {
256 p
.PrintKeyString(name
, StdVideoDecodeH264FieldOrderCountString(value
));
258 std::string
StdVideoH265ChromaFormatIdcString(StdVideoH265ChromaFormatIdc value
) {
260 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME
: return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_MONOCHROME";
261 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_420
: return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_420";
262 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_422
: return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_422";
263 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_444
: return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_444";
264 case STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID
: return "STD_VIDEO_H265_CHROMA_FORMAT_IDC_INVALID";
265 default: return std::string("UNKNOWN_StdVideoH265ChromaFormatIdc_value") + std::to_string(value
);
268 void DumpStdVideoH265ChromaFormatIdc(Printer
&p
, std::string name
, StdVideoH265ChromaFormatIdc value
) {
269 p
.PrintKeyString(name
, StdVideoH265ChromaFormatIdcString(value
));
271 std::string
StdVideoH265ProfileIdcString(StdVideoH265ProfileIdc value
) {
273 case STD_VIDEO_H265_PROFILE_IDC_MAIN
: return "STD_VIDEO_H265_PROFILE_IDC_MAIN";
274 case STD_VIDEO_H265_PROFILE_IDC_MAIN_10
: return "STD_VIDEO_H265_PROFILE_IDC_MAIN_10";
275 case STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE
: return "STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE";
276 case STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS
: return "STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS";
277 case STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS
: return "STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS";
278 case STD_VIDEO_H265_PROFILE_IDC_INVALID
: return "STD_VIDEO_H265_PROFILE_IDC_INVALID";
279 default: return std::string("UNKNOWN_StdVideoH265ProfileIdc_value") + std::to_string(value
);
282 void DumpStdVideoH265ProfileIdc(Printer
&p
, std::string name
, StdVideoH265ProfileIdc value
) {
283 p
.PrintKeyString(name
, StdVideoH265ProfileIdcString(value
));
285 std::string
StdVideoH265LevelIdcString(StdVideoH265LevelIdc value
) {
287 case STD_VIDEO_H265_LEVEL_IDC_1_0
: return "STD_VIDEO_H265_LEVEL_IDC_1_0";
288 case STD_VIDEO_H265_LEVEL_IDC_2_0
: return "STD_VIDEO_H265_LEVEL_IDC_2_0";
289 case STD_VIDEO_H265_LEVEL_IDC_2_1
: return "STD_VIDEO_H265_LEVEL_IDC_2_1";
290 case STD_VIDEO_H265_LEVEL_IDC_3_0
: return "STD_VIDEO_H265_LEVEL_IDC_3_0";
291 case STD_VIDEO_H265_LEVEL_IDC_3_1
: return "STD_VIDEO_H265_LEVEL_IDC_3_1";
292 case STD_VIDEO_H265_LEVEL_IDC_4_0
: return "STD_VIDEO_H265_LEVEL_IDC_4_0";
293 case STD_VIDEO_H265_LEVEL_IDC_4_1
: return "STD_VIDEO_H265_LEVEL_IDC_4_1";
294 case STD_VIDEO_H265_LEVEL_IDC_5_0
: return "STD_VIDEO_H265_LEVEL_IDC_5_0";
295 case STD_VIDEO_H265_LEVEL_IDC_5_1
: return "STD_VIDEO_H265_LEVEL_IDC_5_1";
296 case STD_VIDEO_H265_LEVEL_IDC_5_2
: return "STD_VIDEO_H265_LEVEL_IDC_5_2";
297 case STD_VIDEO_H265_LEVEL_IDC_6_0
: return "STD_VIDEO_H265_LEVEL_IDC_6_0";
298 case STD_VIDEO_H265_LEVEL_IDC_6_1
: return "STD_VIDEO_H265_LEVEL_IDC_6_1";
299 case STD_VIDEO_H265_LEVEL_IDC_6_2
: return "STD_VIDEO_H265_LEVEL_IDC_6_2";
300 case STD_VIDEO_H265_LEVEL_IDC_INVALID
: return "STD_VIDEO_H265_LEVEL_IDC_INVALID";
301 default: return std::string("UNKNOWN_StdVideoH265LevelIdc_value") + std::to_string(value
);
304 void DumpStdVideoH265LevelIdc(Printer
&p
, std::string name
, StdVideoH265LevelIdc value
) {
305 p
.PrintKeyString(name
, StdVideoH265LevelIdcString(value
));
307 std::string
StdVideoH265SliceTypeString(StdVideoH265SliceType value
) {
309 case STD_VIDEO_H265_SLICE_TYPE_B
: return "STD_VIDEO_H265_SLICE_TYPE_B";
310 case STD_VIDEO_H265_SLICE_TYPE_P
: return "STD_VIDEO_H265_SLICE_TYPE_P";
311 case STD_VIDEO_H265_SLICE_TYPE_I
: return "STD_VIDEO_H265_SLICE_TYPE_I";
312 case STD_VIDEO_H265_SLICE_TYPE_INVALID
: return "STD_VIDEO_H265_SLICE_TYPE_INVALID";
313 default: return std::string("UNKNOWN_StdVideoH265SliceType_value") + std::to_string(value
);
316 void DumpStdVideoH265SliceType(Printer
&p
, std::string name
, StdVideoH265SliceType value
) {
317 p
.PrintKeyString(name
, StdVideoH265SliceTypeString(value
));
319 std::string
StdVideoH265PictureTypeString(StdVideoH265PictureType value
) {
321 case STD_VIDEO_H265_PICTURE_TYPE_P
: return "STD_VIDEO_H265_PICTURE_TYPE_P";
322 case STD_VIDEO_H265_PICTURE_TYPE_B
: return "STD_VIDEO_H265_PICTURE_TYPE_B";
323 case STD_VIDEO_H265_PICTURE_TYPE_I
: return "STD_VIDEO_H265_PICTURE_TYPE_I";
324 case STD_VIDEO_H265_PICTURE_TYPE_IDR
: return "STD_VIDEO_H265_PICTURE_TYPE_IDR";
325 case STD_VIDEO_H265_PICTURE_TYPE_INVALID
: return "STD_VIDEO_H265_PICTURE_TYPE_INVALID";
326 default: return std::string("UNKNOWN_StdVideoH265PictureType_value") + std::to_string(value
);
329 void DumpStdVideoH265PictureType(Printer
&p
, std::string name
, StdVideoH265PictureType value
) {
330 p
.PrintKeyString(name
, StdVideoH265PictureTypeString(value
));
332 std::string
StdVideoH265AspectRatioIdcString(StdVideoH265AspectRatioIdc value
) {
334 case STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_UNSPECIFIED";
335 case STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_SQUARE";
336 case STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_12_11";
337 case STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_10_11";
338 case STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_16_11";
339 case STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_40_33";
340 case STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_24_11";
341 case STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_20_11";
342 case STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_32_11";
343 case STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_80_33";
344 case STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_18_11";
345 case STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_15_11";
346 case STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_64_33";
347 case STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_160_99";
348 case STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_4_3";
349 case STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_3_2";
350 case STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_2_1";
351 case STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_EXTENDED_SAR";
352 case STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID
: return "STD_VIDEO_H265_ASPECT_RATIO_IDC_INVALID";
353 default: return std::string("UNKNOWN_StdVideoH265AspectRatioIdc_value") + std::to_string(value
);
356 void DumpStdVideoH265AspectRatioIdc(Printer
&p
, std::string name
, StdVideoH265AspectRatioIdc value
) {
357 p
.PrintKeyString(name
, StdVideoH265AspectRatioIdcString(value
));
359 std::string
StdVideoAV1ProfileString(StdVideoAV1Profile value
) {
361 case STD_VIDEO_AV1_PROFILE_MAIN
: return "STD_VIDEO_AV1_PROFILE_MAIN";
362 case STD_VIDEO_AV1_PROFILE_HIGH
: return "STD_VIDEO_AV1_PROFILE_HIGH";
363 case STD_VIDEO_AV1_PROFILE_PROFESSIONAL
: return "STD_VIDEO_AV1_PROFILE_PROFESSIONAL";
364 case STD_VIDEO_AV1_PROFILE_INVALID
: return "STD_VIDEO_AV1_PROFILE_INVALID";
365 default: return std::string("UNKNOWN_StdVideoAV1Profile_value") + std::to_string(value
);
368 void DumpStdVideoAV1Profile(Printer
&p
, std::string name
, StdVideoAV1Profile value
) {
369 p
.PrintKeyString(name
, StdVideoAV1ProfileString(value
));
371 std::string
StdVideoAV1LevelString(StdVideoAV1Level value
) {
373 case STD_VIDEO_AV1_LEVEL_2_0
: return "STD_VIDEO_AV1_LEVEL_2_0";
374 case STD_VIDEO_AV1_LEVEL_2_1
: return "STD_VIDEO_AV1_LEVEL_2_1";
375 case STD_VIDEO_AV1_LEVEL_2_2
: return "STD_VIDEO_AV1_LEVEL_2_2";
376 case STD_VIDEO_AV1_LEVEL_2_3
: return "STD_VIDEO_AV1_LEVEL_2_3";
377 case STD_VIDEO_AV1_LEVEL_3_0
: return "STD_VIDEO_AV1_LEVEL_3_0";
378 case STD_VIDEO_AV1_LEVEL_3_1
: return "STD_VIDEO_AV1_LEVEL_3_1";
379 case STD_VIDEO_AV1_LEVEL_3_2
: return "STD_VIDEO_AV1_LEVEL_3_2";
380 case STD_VIDEO_AV1_LEVEL_3_3
: return "STD_VIDEO_AV1_LEVEL_3_3";
381 case STD_VIDEO_AV1_LEVEL_4_0
: return "STD_VIDEO_AV1_LEVEL_4_0";
382 case STD_VIDEO_AV1_LEVEL_4_1
: return "STD_VIDEO_AV1_LEVEL_4_1";
383 case STD_VIDEO_AV1_LEVEL_4_2
: return "STD_VIDEO_AV1_LEVEL_4_2";
384 case STD_VIDEO_AV1_LEVEL_4_3
: return "STD_VIDEO_AV1_LEVEL_4_3";
385 case STD_VIDEO_AV1_LEVEL_5_0
: return "STD_VIDEO_AV1_LEVEL_5_0";
386 case STD_VIDEO_AV1_LEVEL_5_1
: return "STD_VIDEO_AV1_LEVEL_5_1";
387 case STD_VIDEO_AV1_LEVEL_5_2
: return "STD_VIDEO_AV1_LEVEL_5_2";
388 case STD_VIDEO_AV1_LEVEL_5_3
: return "STD_VIDEO_AV1_LEVEL_5_3";
389 case STD_VIDEO_AV1_LEVEL_6_0
: return "STD_VIDEO_AV1_LEVEL_6_0";
390 case STD_VIDEO_AV1_LEVEL_6_1
: return "STD_VIDEO_AV1_LEVEL_6_1";
391 case STD_VIDEO_AV1_LEVEL_6_2
: return "STD_VIDEO_AV1_LEVEL_6_2";
392 case STD_VIDEO_AV1_LEVEL_6_3
: return "STD_VIDEO_AV1_LEVEL_6_3";
393 case STD_VIDEO_AV1_LEVEL_7_0
: return "STD_VIDEO_AV1_LEVEL_7_0";
394 case STD_VIDEO_AV1_LEVEL_7_1
: return "STD_VIDEO_AV1_LEVEL_7_1";
395 case STD_VIDEO_AV1_LEVEL_7_2
: return "STD_VIDEO_AV1_LEVEL_7_2";
396 case STD_VIDEO_AV1_LEVEL_7_3
: return "STD_VIDEO_AV1_LEVEL_7_3";
397 case STD_VIDEO_AV1_LEVEL_INVALID
: return "STD_VIDEO_AV1_LEVEL_INVALID";
398 default: return std::string("UNKNOWN_StdVideoAV1Level_value") + std::to_string(value
);
401 void DumpStdVideoAV1Level(Printer
&p
, std::string name
, StdVideoAV1Level value
) {
402 p
.PrintKeyString(name
, StdVideoAV1LevelString(value
));
404 std::string
StdVideoAV1FrameTypeString(StdVideoAV1FrameType value
) {
406 case STD_VIDEO_AV1_FRAME_TYPE_KEY
: return "STD_VIDEO_AV1_FRAME_TYPE_KEY";
407 case STD_VIDEO_AV1_FRAME_TYPE_INTER
: return "STD_VIDEO_AV1_FRAME_TYPE_INTER";
408 case STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY
: return "STD_VIDEO_AV1_FRAME_TYPE_INTRA_ONLY";
409 case STD_VIDEO_AV1_FRAME_TYPE_SWITCH
: return "STD_VIDEO_AV1_FRAME_TYPE_SWITCH";
410 case STD_VIDEO_AV1_FRAME_TYPE_INVALID
: return "STD_VIDEO_AV1_FRAME_TYPE_INVALID";
411 default: return std::string("UNKNOWN_StdVideoAV1FrameType_value") + std::to_string(value
);
414 void DumpStdVideoAV1FrameType(Printer
&p
, std::string name
, StdVideoAV1FrameType value
) {
415 p
.PrintKeyString(name
, StdVideoAV1FrameTypeString(value
));
417 std::string
StdVideoAV1ReferenceNameString(StdVideoAV1ReferenceName value
) {
419 case STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME
: return "STD_VIDEO_AV1_REFERENCE_NAME_INTRA_FRAME";
420 case STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME
: return "STD_VIDEO_AV1_REFERENCE_NAME_LAST_FRAME";
421 case STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME
: return "STD_VIDEO_AV1_REFERENCE_NAME_LAST2_FRAME";
422 case STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME
: return "STD_VIDEO_AV1_REFERENCE_NAME_LAST3_FRAME";
423 case STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME
: return "STD_VIDEO_AV1_REFERENCE_NAME_GOLDEN_FRAME";
424 case STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME
: return "STD_VIDEO_AV1_REFERENCE_NAME_BWDREF_FRAME";
425 case STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME
: return "STD_VIDEO_AV1_REFERENCE_NAME_ALTREF2_FRAME";
426 case STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME
: return "STD_VIDEO_AV1_REFERENCE_NAME_ALTREF_FRAME";
427 case STD_VIDEO_AV1_REFERENCE_NAME_INVALID
: return "STD_VIDEO_AV1_REFERENCE_NAME_INVALID";
428 default: return std::string("UNKNOWN_StdVideoAV1ReferenceName_value") + std::to_string(value
);
431 void DumpStdVideoAV1ReferenceName(Printer
&p
, std::string name
, StdVideoAV1ReferenceName value
) {
432 p
.PrintKeyString(name
, StdVideoAV1ReferenceNameString(value
));
434 std::string
StdVideoAV1InterpolationFilterString(StdVideoAV1InterpolationFilter value
) {
436 case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP
: return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP";
437 case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH
: return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH";
438 case STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP
: return "STD_VIDEO_AV1_INTERPOLATION_FILTER_EIGHTTAP_SHARP";
439 case STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR
: return "STD_VIDEO_AV1_INTERPOLATION_FILTER_BILINEAR";
440 case STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE
: return "STD_VIDEO_AV1_INTERPOLATION_FILTER_SWITCHABLE";
441 case STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID
: return "STD_VIDEO_AV1_INTERPOLATION_FILTER_INVALID";
442 default: return std::string("UNKNOWN_StdVideoAV1InterpolationFilter_value") + std::to_string(value
);
445 void DumpStdVideoAV1InterpolationFilter(Printer
&p
, std::string name
, StdVideoAV1InterpolationFilter value
) {
446 p
.PrintKeyString(name
, StdVideoAV1InterpolationFilterString(value
));
448 std::string
StdVideoAV1TxModeString(StdVideoAV1TxMode value
) {
450 case STD_VIDEO_AV1_TX_MODE_ONLY_4X4
: return "STD_VIDEO_AV1_TX_MODE_ONLY_4X4";
451 case STD_VIDEO_AV1_TX_MODE_LARGEST
: return "STD_VIDEO_AV1_TX_MODE_LARGEST";
452 case STD_VIDEO_AV1_TX_MODE_SELECT
: return "STD_VIDEO_AV1_TX_MODE_SELECT";
453 case STD_VIDEO_AV1_TX_MODE_INVALID
: return "STD_VIDEO_AV1_TX_MODE_INVALID";
454 default: return std::string("UNKNOWN_StdVideoAV1TxMode_value") + std::to_string(value
);
457 void DumpStdVideoAV1TxMode(Printer
&p
, std::string name
, StdVideoAV1TxMode value
) {
458 p
.PrintKeyString(name
, StdVideoAV1TxModeString(value
));
460 std::string
StdVideoAV1FrameRestorationTypeString(StdVideoAV1FrameRestorationType value
) {
462 case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE
: return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE";
463 case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER
: return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER";
464 case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ
: return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ";
465 case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE
: return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE";
466 case STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID
: return "STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_INVALID";
467 default: return std::string("UNKNOWN_StdVideoAV1FrameRestorationType_value") + std::to_string(value
);
470 void DumpStdVideoAV1FrameRestorationType(Printer
&p
, std::string name
, StdVideoAV1FrameRestorationType value
) {
471 p
.PrintKeyString(name
, StdVideoAV1FrameRestorationTypeString(value
));
473 std::string
StdVideoAV1ColorPrimariesString(StdVideoAV1ColorPrimaries value
) {
475 case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_709";
476 case STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_UNSPECIFIED";
477 case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_M";
478 case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_470_B_G";
479 case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_601";
480 case STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_240";
481 case STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_GENERIC_FILM";
482 case STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_BT_2020";
483 case STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_XYZ";
484 case STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_431";
485 case STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_SMPTE_432";
486 case STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_EBU_3213";
487 case STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID
: return "STD_VIDEO_AV1_COLOR_PRIMARIES_INVALID";
488 default: return std::string("UNKNOWN_StdVideoAV1ColorPrimaries_value") + std::to_string(value
);
491 void DumpStdVideoAV1ColorPrimaries(Printer
&p
, std::string name
, StdVideoAV1ColorPrimaries value
) {
492 p
.PrintKeyString(name
, StdVideoAV1ColorPrimariesString(value
));
494 std::string
StdVideoAV1TransferCharacteristicsString(StdVideoAV1TransferCharacteristics value
) {
496 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_0";
497 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_709";
498 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_UNSPECIFIED";
499 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_RESERVED_3";
500 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_M";
501 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_470_B_G";
502 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_601";
503 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_240";
504 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LINEAR";
505 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100";
506 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_LOG_100_SQRT10";
507 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_IEC_61966";
508 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_1361";
509 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SRGB";
510 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_10_BIT";
511 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_BT_2020_12_BIT";
512 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_2084";
513 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_SMPTE_428";
514 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_HLG";
515 case STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID
: return "STD_VIDEO_AV1_TRANSFER_CHARACTERISTICS_INVALID";
516 default: return std::string("UNKNOWN_StdVideoAV1TransferCharacteristics_value") + std::to_string(value
);
519 void DumpStdVideoAV1TransferCharacteristics(Printer
&p
, std::string name
, StdVideoAV1TransferCharacteristics value
) {
520 p
.PrintKeyString(name
, StdVideoAV1TransferCharacteristicsString(value
));
522 std::string
StdVideoAV1MatrixCoefficientsString(StdVideoAV1MatrixCoefficients value
) {
524 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_IDENTITY";
525 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_709";
526 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_UNSPECIFIED";
527 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_RESERVED_3";
528 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_FCC";
529 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_470_B_G";
530 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_601";
531 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_240";
532 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_YCGCO";
533 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_NCL";
534 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_BT_2020_CL";
535 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_SMPTE_2085";
536 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_NCL";
537 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_CHROMAT_CL";
538 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_ICTCP";
539 case STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID
: return "STD_VIDEO_AV1_MATRIX_COEFFICIENTS_INVALID";
540 default: return std::string("UNKNOWN_StdVideoAV1MatrixCoefficients_value") + std::to_string(value
);
543 void DumpStdVideoAV1MatrixCoefficients(Printer
&p
, std::string name
, StdVideoAV1MatrixCoefficients value
) {
544 p
.PrintKeyString(name
, StdVideoAV1MatrixCoefficientsString(value
));
546 std::string
StdVideoAV1ChromaSamplePositionString(StdVideoAV1ChromaSamplePosition value
) {
548 case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN
: return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_UNKNOWN";
549 case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL
: return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_VERTICAL";
550 case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED
: return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_COLOCATED";
551 case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED
: return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_RESERVED";
552 case STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID
: return "STD_VIDEO_AV1_CHROMA_SAMPLE_POSITION_INVALID";
553 default: return std::string("UNKNOWN_StdVideoAV1ChromaSamplePosition_value") + std::to_string(value
);
556 void DumpStdVideoAV1ChromaSamplePosition(Printer
&p
, std::string name
, StdVideoAV1ChromaSamplePosition value
) {
557 p
.PrintKeyString(name
, StdVideoAV1ChromaSamplePositionString(value
));
559 std::string
VkColorSpaceKHRString(VkColorSpaceKHR value
) {
561 case (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
): return "COLOR_SPACE_SRGB_NONLINEAR_KHR";
562 case (VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
): return "COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
563 case (VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
): return "COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
564 case (VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
): return "COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
565 case (VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT
): return "COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
566 case (VK_COLOR_SPACE_BT709_LINEAR_EXT
): return "COLOR_SPACE_BT709_LINEAR_EXT";
567 case (VK_COLOR_SPACE_BT709_NONLINEAR_EXT
): return "COLOR_SPACE_BT709_NONLINEAR_EXT";
568 case (VK_COLOR_SPACE_BT2020_LINEAR_EXT
): return "COLOR_SPACE_BT2020_LINEAR_EXT";
569 case (VK_COLOR_SPACE_HDR10_ST2084_EXT
): return "COLOR_SPACE_HDR10_ST2084_EXT";
570 case (VK_COLOR_SPACE_DOLBYVISION_EXT
): return "COLOR_SPACE_DOLBYVISION_EXT";
571 case (VK_COLOR_SPACE_HDR10_HLG_EXT
): return "COLOR_SPACE_HDR10_HLG_EXT";
572 case (VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT
): return "COLOR_SPACE_ADOBERGB_LINEAR_EXT";
573 case (VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
): return "COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
574 case (VK_COLOR_SPACE_PASS_THROUGH_EXT
): return "COLOR_SPACE_PASS_THROUGH_EXT";
575 case (VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
): return "COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
576 case (VK_COLOR_SPACE_DISPLAY_NATIVE_AMD
): return "COLOR_SPACE_DISPLAY_NATIVE_AMD";
577 default: return std::string("UNKNOWN_VkColorSpaceKHR_value") + std::to_string(value
);
580 void DumpVkColorSpaceKHR(Printer
&p
, std::string name
, VkColorSpaceKHR value
) {
581 if (p
.Type() == OutputType::json
)
582 p
.PrintKeyString(name
, std::string("VK_") + VkColorSpaceKHRString(value
));
584 p
.PrintKeyString(name
, VkColorSpaceKHRString(value
));
586 std::string
VkComponentSwizzleString(VkComponentSwizzle value
) {
588 case (VK_COMPONENT_SWIZZLE_IDENTITY
): return "COMPONENT_SWIZZLE_IDENTITY";
589 case (VK_COMPONENT_SWIZZLE_ZERO
): return "COMPONENT_SWIZZLE_ZERO";
590 case (VK_COMPONENT_SWIZZLE_ONE
): return "COMPONENT_SWIZZLE_ONE";
591 case (VK_COMPONENT_SWIZZLE_R
): return "COMPONENT_SWIZZLE_R";
592 case (VK_COMPONENT_SWIZZLE_G
): return "COMPONENT_SWIZZLE_G";
593 case (VK_COMPONENT_SWIZZLE_B
): return "COMPONENT_SWIZZLE_B";
594 case (VK_COMPONENT_SWIZZLE_A
): return "COMPONENT_SWIZZLE_A";
595 default: return std::string("UNKNOWN_VkComponentSwizzle_value") + std::to_string(value
);
598 void DumpVkComponentSwizzle(Printer
&p
, std::string name
, VkComponentSwizzle value
) {
599 if (p
.Type() == OutputType::json
)
600 p
.PrintKeyString(name
, std::string("VK_") + VkComponentSwizzleString(value
));
602 p
.PrintKeyString(name
, VkComponentSwizzleString(value
));
604 std::string
VkDriverIdString(VkDriverId value
) {
606 case (VK_DRIVER_ID_AMD_PROPRIETARY
): return "DRIVER_ID_AMD_PROPRIETARY";
607 case (VK_DRIVER_ID_AMD_OPEN_SOURCE
): return "DRIVER_ID_AMD_OPEN_SOURCE";
608 case (VK_DRIVER_ID_MESA_RADV
): return "DRIVER_ID_MESA_RADV";
609 case (VK_DRIVER_ID_NVIDIA_PROPRIETARY
): return "DRIVER_ID_NVIDIA_PROPRIETARY";
610 case (VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS
): return "DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
611 case (VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA
): return "DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
612 case (VK_DRIVER_ID_IMAGINATION_PROPRIETARY
): return "DRIVER_ID_IMAGINATION_PROPRIETARY";
613 case (VK_DRIVER_ID_QUALCOMM_PROPRIETARY
): return "DRIVER_ID_QUALCOMM_PROPRIETARY";
614 case (VK_DRIVER_ID_ARM_PROPRIETARY
): return "DRIVER_ID_ARM_PROPRIETARY";
615 case (VK_DRIVER_ID_GOOGLE_SWIFTSHADER
): return "DRIVER_ID_GOOGLE_SWIFTSHADER";
616 case (VK_DRIVER_ID_GGP_PROPRIETARY
): return "DRIVER_ID_GGP_PROPRIETARY";
617 case (VK_DRIVER_ID_BROADCOM_PROPRIETARY
): return "DRIVER_ID_BROADCOM_PROPRIETARY";
618 case (VK_DRIVER_ID_MESA_LLVMPIPE
): return "DRIVER_ID_MESA_LLVMPIPE";
619 case (VK_DRIVER_ID_MOLTENVK
): return "DRIVER_ID_MOLTENVK";
620 case (VK_DRIVER_ID_COREAVI_PROPRIETARY
): return "DRIVER_ID_COREAVI_PROPRIETARY";
621 case (VK_DRIVER_ID_JUICE_PROPRIETARY
): return "DRIVER_ID_JUICE_PROPRIETARY";
622 case (VK_DRIVER_ID_VERISILICON_PROPRIETARY
): return "DRIVER_ID_VERISILICON_PROPRIETARY";
623 case (VK_DRIVER_ID_MESA_TURNIP
): return "DRIVER_ID_MESA_TURNIP";
624 case (VK_DRIVER_ID_MESA_V3DV
): return "DRIVER_ID_MESA_V3DV";
625 case (VK_DRIVER_ID_MESA_PANVK
): return "DRIVER_ID_MESA_PANVK";
626 case (VK_DRIVER_ID_SAMSUNG_PROPRIETARY
): return "DRIVER_ID_SAMSUNG_PROPRIETARY";
627 case (VK_DRIVER_ID_MESA_VENUS
): return "DRIVER_ID_MESA_VENUS";
628 case (VK_DRIVER_ID_MESA_DOZEN
): return "DRIVER_ID_MESA_DOZEN";
629 case (VK_DRIVER_ID_MESA_NVK
): return "DRIVER_ID_MESA_NVK";
630 case (VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
): return "DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA";
631 case (VK_DRIVER_ID_MESA_HONEYKRISP
): return "DRIVER_ID_MESA_HONEYKRISP";
632 case (VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN
): return "DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN";
633 default: return std::string("UNKNOWN_VkDriverId_value") + std::to_string(value
);
636 void DumpVkDriverId(Printer
&p
, std::string name
, VkDriverId value
) {
637 if (p
.Type() == OutputType::json
)
638 p
.PrintKeyString(name
, std::string("VK_") + VkDriverIdString(value
));
640 p
.PrintKeyString(name
, VkDriverIdString(value
));
642 std::string
VkFormatString(VkFormat value
) {
644 case (VK_FORMAT_UNDEFINED
): return "FORMAT_UNDEFINED";
645 case (VK_FORMAT_R4G4_UNORM_PACK8
): return "FORMAT_R4G4_UNORM_PACK8";
646 case (VK_FORMAT_R4G4B4A4_UNORM_PACK16
): return "FORMAT_R4G4B4A4_UNORM_PACK16";
647 case (VK_FORMAT_B4G4R4A4_UNORM_PACK16
): return "FORMAT_B4G4R4A4_UNORM_PACK16";
648 case (VK_FORMAT_R5G6B5_UNORM_PACK16
): return "FORMAT_R5G6B5_UNORM_PACK16";
649 case (VK_FORMAT_B5G6R5_UNORM_PACK16
): return "FORMAT_B5G6R5_UNORM_PACK16";
650 case (VK_FORMAT_R5G5B5A1_UNORM_PACK16
): return "FORMAT_R5G5B5A1_UNORM_PACK16";
651 case (VK_FORMAT_B5G5R5A1_UNORM_PACK16
): return "FORMAT_B5G5R5A1_UNORM_PACK16";
652 case (VK_FORMAT_A1R5G5B5_UNORM_PACK16
): return "FORMAT_A1R5G5B5_UNORM_PACK16";
653 case (VK_FORMAT_R8_UNORM
): return "FORMAT_R8_UNORM";
654 case (VK_FORMAT_R8_SNORM
): return "FORMAT_R8_SNORM";
655 case (VK_FORMAT_R8_USCALED
): return "FORMAT_R8_USCALED";
656 case (VK_FORMAT_R8_SSCALED
): return "FORMAT_R8_SSCALED";
657 case (VK_FORMAT_R8_UINT
): return "FORMAT_R8_UINT";
658 case (VK_FORMAT_R8_SINT
): return "FORMAT_R8_SINT";
659 case (VK_FORMAT_R8_SRGB
): return "FORMAT_R8_SRGB";
660 case (VK_FORMAT_R8G8_UNORM
): return "FORMAT_R8G8_UNORM";
661 case (VK_FORMAT_R8G8_SNORM
): return "FORMAT_R8G8_SNORM";
662 case (VK_FORMAT_R8G8_USCALED
): return "FORMAT_R8G8_USCALED";
663 case (VK_FORMAT_R8G8_SSCALED
): return "FORMAT_R8G8_SSCALED";
664 case (VK_FORMAT_R8G8_UINT
): return "FORMAT_R8G8_UINT";
665 case (VK_FORMAT_R8G8_SINT
): return "FORMAT_R8G8_SINT";
666 case (VK_FORMAT_R8G8_SRGB
): return "FORMAT_R8G8_SRGB";
667 case (VK_FORMAT_R8G8B8_UNORM
): return "FORMAT_R8G8B8_UNORM";
668 case (VK_FORMAT_R8G8B8_SNORM
): return "FORMAT_R8G8B8_SNORM";
669 case (VK_FORMAT_R8G8B8_USCALED
): return "FORMAT_R8G8B8_USCALED";
670 case (VK_FORMAT_R8G8B8_SSCALED
): return "FORMAT_R8G8B8_SSCALED";
671 case (VK_FORMAT_R8G8B8_UINT
): return "FORMAT_R8G8B8_UINT";
672 case (VK_FORMAT_R8G8B8_SINT
): return "FORMAT_R8G8B8_SINT";
673 case (VK_FORMAT_R8G8B8_SRGB
): return "FORMAT_R8G8B8_SRGB";
674 case (VK_FORMAT_B8G8R8_UNORM
): return "FORMAT_B8G8R8_UNORM";
675 case (VK_FORMAT_B8G8R8_SNORM
): return "FORMAT_B8G8R8_SNORM";
676 case (VK_FORMAT_B8G8R8_USCALED
): return "FORMAT_B8G8R8_USCALED";
677 case (VK_FORMAT_B8G8R8_SSCALED
): return "FORMAT_B8G8R8_SSCALED";
678 case (VK_FORMAT_B8G8R8_UINT
): return "FORMAT_B8G8R8_UINT";
679 case (VK_FORMAT_B8G8R8_SINT
): return "FORMAT_B8G8R8_SINT";
680 case (VK_FORMAT_B8G8R8_SRGB
): return "FORMAT_B8G8R8_SRGB";
681 case (VK_FORMAT_R8G8B8A8_UNORM
): return "FORMAT_R8G8B8A8_UNORM";
682 case (VK_FORMAT_R8G8B8A8_SNORM
): return "FORMAT_R8G8B8A8_SNORM";
683 case (VK_FORMAT_R8G8B8A8_USCALED
): return "FORMAT_R8G8B8A8_USCALED";
684 case (VK_FORMAT_R8G8B8A8_SSCALED
): return "FORMAT_R8G8B8A8_SSCALED";
685 case (VK_FORMAT_R8G8B8A8_UINT
): return "FORMAT_R8G8B8A8_UINT";
686 case (VK_FORMAT_R8G8B8A8_SINT
): return "FORMAT_R8G8B8A8_SINT";
687 case (VK_FORMAT_R8G8B8A8_SRGB
): return "FORMAT_R8G8B8A8_SRGB";
688 case (VK_FORMAT_B8G8R8A8_UNORM
): return "FORMAT_B8G8R8A8_UNORM";
689 case (VK_FORMAT_B8G8R8A8_SNORM
): return "FORMAT_B8G8R8A8_SNORM";
690 case (VK_FORMAT_B8G8R8A8_USCALED
): return "FORMAT_B8G8R8A8_USCALED";
691 case (VK_FORMAT_B8G8R8A8_SSCALED
): return "FORMAT_B8G8R8A8_SSCALED";
692 case (VK_FORMAT_B8G8R8A8_UINT
): return "FORMAT_B8G8R8A8_UINT";
693 case (VK_FORMAT_B8G8R8A8_SINT
): return "FORMAT_B8G8R8A8_SINT";
694 case (VK_FORMAT_B8G8R8A8_SRGB
): return "FORMAT_B8G8R8A8_SRGB";
695 case (VK_FORMAT_A8B8G8R8_UNORM_PACK32
): return "FORMAT_A8B8G8R8_UNORM_PACK32";
696 case (VK_FORMAT_A8B8G8R8_SNORM_PACK32
): return "FORMAT_A8B8G8R8_SNORM_PACK32";
697 case (VK_FORMAT_A8B8G8R8_USCALED_PACK32
): return "FORMAT_A8B8G8R8_USCALED_PACK32";
698 case (VK_FORMAT_A8B8G8R8_SSCALED_PACK32
): return "FORMAT_A8B8G8R8_SSCALED_PACK32";
699 case (VK_FORMAT_A8B8G8R8_UINT_PACK32
): return "FORMAT_A8B8G8R8_UINT_PACK32";
700 case (VK_FORMAT_A8B8G8R8_SINT_PACK32
): return "FORMAT_A8B8G8R8_SINT_PACK32";
701 case (VK_FORMAT_A8B8G8R8_SRGB_PACK32
): return "FORMAT_A8B8G8R8_SRGB_PACK32";
702 case (VK_FORMAT_A2R10G10B10_UNORM_PACK32
): return "FORMAT_A2R10G10B10_UNORM_PACK32";
703 case (VK_FORMAT_A2R10G10B10_SNORM_PACK32
): return "FORMAT_A2R10G10B10_SNORM_PACK32";
704 case (VK_FORMAT_A2R10G10B10_USCALED_PACK32
): return "FORMAT_A2R10G10B10_USCALED_PACK32";
705 case (VK_FORMAT_A2R10G10B10_SSCALED_PACK32
): return "FORMAT_A2R10G10B10_SSCALED_PACK32";
706 case (VK_FORMAT_A2R10G10B10_UINT_PACK32
): return "FORMAT_A2R10G10B10_UINT_PACK32";
707 case (VK_FORMAT_A2R10G10B10_SINT_PACK32
): return "FORMAT_A2R10G10B10_SINT_PACK32";
708 case (VK_FORMAT_A2B10G10R10_UNORM_PACK32
): return "FORMAT_A2B10G10R10_UNORM_PACK32";
709 case (VK_FORMAT_A2B10G10R10_SNORM_PACK32
): return "FORMAT_A2B10G10R10_SNORM_PACK32";
710 case (VK_FORMAT_A2B10G10R10_USCALED_PACK32
): return "FORMAT_A2B10G10R10_USCALED_PACK32";
711 case (VK_FORMAT_A2B10G10R10_SSCALED_PACK32
): return "FORMAT_A2B10G10R10_SSCALED_PACK32";
712 case (VK_FORMAT_A2B10G10R10_UINT_PACK32
): return "FORMAT_A2B10G10R10_UINT_PACK32";
713 case (VK_FORMAT_A2B10G10R10_SINT_PACK32
): return "FORMAT_A2B10G10R10_SINT_PACK32";
714 case (VK_FORMAT_R16_UNORM
): return "FORMAT_R16_UNORM";
715 case (VK_FORMAT_R16_SNORM
): return "FORMAT_R16_SNORM";
716 case (VK_FORMAT_R16_USCALED
): return "FORMAT_R16_USCALED";
717 case (VK_FORMAT_R16_SSCALED
): return "FORMAT_R16_SSCALED";
718 case (VK_FORMAT_R16_UINT
): return "FORMAT_R16_UINT";
719 case (VK_FORMAT_R16_SINT
): return "FORMAT_R16_SINT";
720 case (VK_FORMAT_R16_SFLOAT
): return "FORMAT_R16_SFLOAT";
721 case (VK_FORMAT_R16G16_UNORM
): return "FORMAT_R16G16_UNORM";
722 case (VK_FORMAT_R16G16_SNORM
): return "FORMAT_R16G16_SNORM";
723 case (VK_FORMAT_R16G16_USCALED
): return "FORMAT_R16G16_USCALED";
724 case (VK_FORMAT_R16G16_SSCALED
): return "FORMAT_R16G16_SSCALED";
725 case (VK_FORMAT_R16G16_UINT
): return "FORMAT_R16G16_UINT";
726 case (VK_FORMAT_R16G16_SINT
): return "FORMAT_R16G16_SINT";
727 case (VK_FORMAT_R16G16_SFLOAT
): return "FORMAT_R16G16_SFLOAT";
728 case (VK_FORMAT_R16G16B16_UNORM
): return "FORMAT_R16G16B16_UNORM";
729 case (VK_FORMAT_R16G16B16_SNORM
): return "FORMAT_R16G16B16_SNORM";
730 case (VK_FORMAT_R16G16B16_USCALED
): return "FORMAT_R16G16B16_USCALED";
731 case (VK_FORMAT_R16G16B16_SSCALED
): return "FORMAT_R16G16B16_SSCALED";
732 case (VK_FORMAT_R16G16B16_UINT
): return "FORMAT_R16G16B16_UINT";
733 case (VK_FORMAT_R16G16B16_SINT
): return "FORMAT_R16G16B16_SINT";
734 case (VK_FORMAT_R16G16B16_SFLOAT
): return "FORMAT_R16G16B16_SFLOAT";
735 case (VK_FORMAT_R16G16B16A16_UNORM
): return "FORMAT_R16G16B16A16_UNORM";
736 case (VK_FORMAT_R16G16B16A16_SNORM
): return "FORMAT_R16G16B16A16_SNORM";
737 case (VK_FORMAT_R16G16B16A16_USCALED
): return "FORMAT_R16G16B16A16_USCALED";
738 case (VK_FORMAT_R16G16B16A16_SSCALED
): return "FORMAT_R16G16B16A16_SSCALED";
739 case (VK_FORMAT_R16G16B16A16_UINT
): return "FORMAT_R16G16B16A16_UINT";
740 case (VK_FORMAT_R16G16B16A16_SINT
): return "FORMAT_R16G16B16A16_SINT";
741 case (VK_FORMAT_R16G16B16A16_SFLOAT
): return "FORMAT_R16G16B16A16_SFLOAT";
742 case (VK_FORMAT_R32_UINT
): return "FORMAT_R32_UINT";
743 case (VK_FORMAT_R32_SINT
): return "FORMAT_R32_SINT";
744 case (VK_FORMAT_R32_SFLOAT
): return "FORMAT_R32_SFLOAT";
745 case (VK_FORMAT_R32G32_UINT
): return "FORMAT_R32G32_UINT";
746 case (VK_FORMAT_R32G32_SINT
): return "FORMAT_R32G32_SINT";
747 case (VK_FORMAT_R32G32_SFLOAT
): return "FORMAT_R32G32_SFLOAT";
748 case (VK_FORMAT_R32G32B32_UINT
): return "FORMAT_R32G32B32_UINT";
749 case (VK_FORMAT_R32G32B32_SINT
): return "FORMAT_R32G32B32_SINT";
750 case (VK_FORMAT_R32G32B32_SFLOAT
): return "FORMAT_R32G32B32_SFLOAT";
751 case (VK_FORMAT_R32G32B32A32_UINT
): return "FORMAT_R32G32B32A32_UINT";
752 case (VK_FORMAT_R32G32B32A32_SINT
): return "FORMAT_R32G32B32A32_SINT";
753 case (VK_FORMAT_R32G32B32A32_SFLOAT
): return "FORMAT_R32G32B32A32_SFLOAT";
754 case (VK_FORMAT_R64_UINT
): return "FORMAT_R64_UINT";
755 case (VK_FORMAT_R64_SINT
): return "FORMAT_R64_SINT";
756 case (VK_FORMAT_R64_SFLOAT
): return "FORMAT_R64_SFLOAT";
757 case (VK_FORMAT_R64G64_UINT
): return "FORMAT_R64G64_UINT";
758 case (VK_FORMAT_R64G64_SINT
): return "FORMAT_R64G64_SINT";
759 case (VK_FORMAT_R64G64_SFLOAT
): return "FORMAT_R64G64_SFLOAT";
760 case (VK_FORMAT_R64G64B64_UINT
): return "FORMAT_R64G64B64_UINT";
761 case (VK_FORMAT_R64G64B64_SINT
): return "FORMAT_R64G64B64_SINT";
762 case (VK_FORMAT_R64G64B64_SFLOAT
): return "FORMAT_R64G64B64_SFLOAT";
763 case (VK_FORMAT_R64G64B64A64_UINT
): return "FORMAT_R64G64B64A64_UINT";
764 case (VK_FORMAT_R64G64B64A64_SINT
): return "FORMAT_R64G64B64A64_SINT";
765 case (VK_FORMAT_R64G64B64A64_SFLOAT
): return "FORMAT_R64G64B64A64_SFLOAT";
766 case (VK_FORMAT_B10G11R11_UFLOAT_PACK32
): return "FORMAT_B10G11R11_UFLOAT_PACK32";
767 case (VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
): return "FORMAT_E5B9G9R9_UFLOAT_PACK32";
768 case (VK_FORMAT_D16_UNORM
): return "FORMAT_D16_UNORM";
769 case (VK_FORMAT_X8_D24_UNORM_PACK32
): return "FORMAT_X8_D24_UNORM_PACK32";
770 case (VK_FORMAT_D32_SFLOAT
): return "FORMAT_D32_SFLOAT";
771 case (VK_FORMAT_S8_UINT
): return "FORMAT_S8_UINT";
772 case (VK_FORMAT_D16_UNORM_S8_UINT
): return "FORMAT_D16_UNORM_S8_UINT";
773 case (VK_FORMAT_D24_UNORM_S8_UINT
): return "FORMAT_D24_UNORM_S8_UINT";
774 case (VK_FORMAT_D32_SFLOAT_S8_UINT
): return "FORMAT_D32_SFLOAT_S8_UINT";
775 case (VK_FORMAT_BC1_RGB_UNORM_BLOCK
): return "FORMAT_BC1_RGB_UNORM_BLOCK";
776 case (VK_FORMAT_BC1_RGB_SRGB_BLOCK
): return "FORMAT_BC1_RGB_SRGB_BLOCK";
777 case (VK_FORMAT_BC1_RGBA_UNORM_BLOCK
): return "FORMAT_BC1_RGBA_UNORM_BLOCK";
778 case (VK_FORMAT_BC1_RGBA_SRGB_BLOCK
): return "FORMAT_BC1_RGBA_SRGB_BLOCK";
779 case (VK_FORMAT_BC2_UNORM_BLOCK
): return "FORMAT_BC2_UNORM_BLOCK";
780 case (VK_FORMAT_BC2_SRGB_BLOCK
): return "FORMAT_BC2_SRGB_BLOCK";
781 case (VK_FORMAT_BC3_UNORM_BLOCK
): return "FORMAT_BC3_UNORM_BLOCK";
782 case (VK_FORMAT_BC3_SRGB_BLOCK
): return "FORMAT_BC3_SRGB_BLOCK";
783 case (VK_FORMAT_BC4_UNORM_BLOCK
): return "FORMAT_BC4_UNORM_BLOCK";
784 case (VK_FORMAT_BC4_SNORM_BLOCK
): return "FORMAT_BC4_SNORM_BLOCK";
785 case (VK_FORMAT_BC5_UNORM_BLOCK
): return "FORMAT_BC5_UNORM_BLOCK";
786 case (VK_FORMAT_BC5_SNORM_BLOCK
): return "FORMAT_BC5_SNORM_BLOCK";
787 case (VK_FORMAT_BC6H_UFLOAT_BLOCK
): return "FORMAT_BC6H_UFLOAT_BLOCK";
788 case (VK_FORMAT_BC6H_SFLOAT_BLOCK
): return "FORMAT_BC6H_SFLOAT_BLOCK";
789 case (VK_FORMAT_BC7_UNORM_BLOCK
): return "FORMAT_BC7_UNORM_BLOCK";
790 case (VK_FORMAT_BC7_SRGB_BLOCK
): return "FORMAT_BC7_SRGB_BLOCK";
791 case (VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
): return "FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
792 case (VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
): return "FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
793 case (VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
): return "FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
794 case (VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
): return "FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
795 case (VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
): return "FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
796 case (VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
): return "FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
797 case (VK_FORMAT_EAC_R11_UNORM_BLOCK
): return "FORMAT_EAC_R11_UNORM_BLOCK";
798 case (VK_FORMAT_EAC_R11_SNORM_BLOCK
): return "FORMAT_EAC_R11_SNORM_BLOCK";
799 case (VK_FORMAT_EAC_R11G11_UNORM_BLOCK
): return "FORMAT_EAC_R11G11_UNORM_BLOCK";
800 case (VK_FORMAT_EAC_R11G11_SNORM_BLOCK
): return "FORMAT_EAC_R11G11_SNORM_BLOCK";
801 case (VK_FORMAT_ASTC_4x4_UNORM_BLOCK
): return "FORMAT_ASTC_4x4_UNORM_BLOCK";
802 case (VK_FORMAT_ASTC_4x4_SRGB_BLOCK
): return "FORMAT_ASTC_4x4_SRGB_BLOCK";
803 case (VK_FORMAT_ASTC_5x4_UNORM_BLOCK
): return "FORMAT_ASTC_5x4_UNORM_BLOCK";
804 case (VK_FORMAT_ASTC_5x4_SRGB_BLOCK
): return "FORMAT_ASTC_5x4_SRGB_BLOCK";
805 case (VK_FORMAT_ASTC_5x5_UNORM_BLOCK
): return "FORMAT_ASTC_5x5_UNORM_BLOCK";
806 case (VK_FORMAT_ASTC_5x5_SRGB_BLOCK
): return "FORMAT_ASTC_5x5_SRGB_BLOCK";
807 case (VK_FORMAT_ASTC_6x5_UNORM_BLOCK
): return "FORMAT_ASTC_6x5_UNORM_BLOCK";
808 case (VK_FORMAT_ASTC_6x5_SRGB_BLOCK
): return "FORMAT_ASTC_6x5_SRGB_BLOCK";
809 case (VK_FORMAT_ASTC_6x6_UNORM_BLOCK
): return "FORMAT_ASTC_6x6_UNORM_BLOCK";
810 case (VK_FORMAT_ASTC_6x6_SRGB_BLOCK
): return "FORMAT_ASTC_6x6_SRGB_BLOCK";
811 case (VK_FORMAT_ASTC_8x5_UNORM_BLOCK
): return "FORMAT_ASTC_8x5_UNORM_BLOCK";
812 case (VK_FORMAT_ASTC_8x5_SRGB_BLOCK
): return "FORMAT_ASTC_8x5_SRGB_BLOCK";
813 case (VK_FORMAT_ASTC_8x6_UNORM_BLOCK
): return "FORMAT_ASTC_8x6_UNORM_BLOCK";
814 case (VK_FORMAT_ASTC_8x6_SRGB_BLOCK
): return "FORMAT_ASTC_8x6_SRGB_BLOCK";
815 case (VK_FORMAT_ASTC_8x8_UNORM_BLOCK
): return "FORMAT_ASTC_8x8_UNORM_BLOCK";
816 case (VK_FORMAT_ASTC_8x8_SRGB_BLOCK
): return "FORMAT_ASTC_8x8_SRGB_BLOCK";
817 case (VK_FORMAT_ASTC_10x5_UNORM_BLOCK
): return "FORMAT_ASTC_10x5_UNORM_BLOCK";
818 case (VK_FORMAT_ASTC_10x5_SRGB_BLOCK
): return "FORMAT_ASTC_10x5_SRGB_BLOCK";
819 case (VK_FORMAT_ASTC_10x6_UNORM_BLOCK
): return "FORMAT_ASTC_10x6_UNORM_BLOCK";
820 case (VK_FORMAT_ASTC_10x6_SRGB_BLOCK
): return "FORMAT_ASTC_10x6_SRGB_BLOCK";
821 case (VK_FORMAT_ASTC_10x8_UNORM_BLOCK
): return "FORMAT_ASTC_10x8_UNORM_BLOCK";
822 case (VK_FORMAT_ASTC_10x8_SRGB_BLOCK
): return "FORMAT_ASTC_10x8_SRGB_BLOCK";
823 case (VK_FORMAT_ASTC_10x10_UNORM_BLOCK
): return "FORMAT_ASTC_10x10_UNORM_BLOCK";
824 case (VK_FORMAT_ASTC_10x10_SRGB_BLOCK
): return "FORMAT_ASTC_10x10_SRGB_BLOCK";
825 case (VK_FORMAT_ASTC_12x10_UNORM_BLOCK
): return "FORMAT_ASTC_12x10_UNORM_BLOCK";
826 case (VK_FORMAT_ASTC_12x10_SRGB_BLOCK
): return "FORMAT_ASTC_12x10_SRGB_BLOCK";
827 case (VK_FORMAT_ASTC_12x12_UNORM_BLOCK
): return "FORMAT_ASTC_12x12_UNORM_BLOCK";
828 case (VK_FORMAT_ASTC_12x12_SRGB_BLOCK
): return "FORMAT_ASTC_12x12_SRGB_BLOCK";
829 case (VK_FORMAT_G8B8G8R8_422_UNORM
): return "FORMAT_G8B8G8R8_422_UNORM";
830 case (VK_FORMAT_B8G8R8G8_422_UNORM
): return "FORMAT_B8G8R8G8_422_UNORM";
831 case (VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM
): return "FORMAT_G8_B8_R8_3PLANE_420_UNORM";
832 case (VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
): return "FORMAT_G8_B8R8_2PLANE_420_UNORM";
833 case (VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM
): return "FORMAT_G8_B8_R8_3PLANE_422_UNORM";
834 case (VK_FORMAT_G8_B8R8_2PLANE_422_UNORM
): return "FORMAT_G8_B8R8_2PLANE_422_UNORM";
835 case (VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM
): return "FORMAT_G8_B8_R8_3PLANE_444_UNORM";
836 case (VK_FORMAT_R10X6_UNORM_PACK16
): return "FORMAT_R10X6_UNORM_PACK16";
837 case (VK_FORMAT_R10X6G10X6_UNORM_2PACK16
): return "FORMAT_R10X6G10X6_UNORM_2PACK16";
838 case (VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
): return "FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
839 case (VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
): return "FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
840 case (VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
): return "FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
841 case (VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
842 case (VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
843 case (VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
844 case (VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
845 case (VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
846 case (VK_FORMAT_R12X4_UNORM_PACK16
): return "FORMAT_R12X4_UNORM_PACK16";
847 case (VK_FORMAT_R12X4G12X4_UNORM_2PACK16
): return "FORMAT_R12X4G12X4_UNORM_2PACK16";
848 case (VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
): return "FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
849 case (VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
): return "FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
850 case (VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
): return "FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
851 case (VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
852 case (VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
853 case (VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
854 case (VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
855 case (VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
856 case (VK_FORMAT_G16B16G16R16_422_UNORM
): return "FORMAT_G16B16G16R16_422_UNORM";
857 case (VK_FORMAT_B16G16R16G16_422_UNORM
): return "FORMAT_B16G16R16G16_422_UNORM";
858 case (VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM
): return "FORMAT_G16_B16_R16_3PLANE_420_UNORM";
859 case (VK_FORMAT_G16_B16R16_2PLANE_420_UNORM
): return "FORMAT_G16_B16R16_2PLANE_420_UNORM";
860 case (VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM
): return "FORMAT_G16_B16_R16_3PLANE_422_UNORM";
861 case (VK_FORMAT_G16_B16R16_2PLANE_422_UNORM
): return "FORMAT_G16_B16R16_2PLANE_422_UNORM";
862 case (VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM
): return "FORMAT_G16_B16_R16_3PLANE_444_UNORM";
863 case (VK_FORMAT_G8_B8R8_2PLANE_444_UNORM
): return "FORMAT_G8_B8R8_2PLANE_444_UNORM";
864 case (VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
865 case (VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
866 case (VK_FORMAT_G16_B16R16_2PLANE_444_UNORM
): return "FORMAT_G16_B16R16_2PLANE_444_UNORM";
867 case (VK_FORMAT_A4R4G4B4_UNORM_PACK16
): return "FORMAT_A4R4G4B4_UNORM_PACK16";
868 case (VK_FORMAT_A4B4G4R4_UNORM_PACK16
): return "FORMAT_A4B4G4R4_UNORM_PACK16";
869 case (VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK
): return "FORMAT_ASTC_4x4_SFLOAT_BLOCK";
870 case (VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK
): return "FORMAT_ASTC_5x4_SFLOAT_BLOCK";
871 case (VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK
): return "FORMAT_ASTC_5x5_SFLOAT_BLOCK";
872 case (VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK
): return "FORMAT_ASTC_6x5_SFLOAT_BLOCK";
873 case (VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK
): return "FORMAT_ASTC_6x6_SFLOAT_BLOCK";
874 case (VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK
): return "FORMAT_ASTC_8x5_SFLOAT_BLOCK";
875 case (VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK
): return "FORMAT_ASTC_8x6_SFLOAT_BLOCK";
876 case (VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK
): return "FORMAT_ASTC_8x8_SFLOAT_BLOCK";
877 case (VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK
): return "FORMAT_ASTC_10x5_SFLOAT_BLOCK";
878 case (VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK
): return "FORMAT_ASTC_10x6_SFLOAT_BLOCK";
879 case (VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK
): return "FORMAT_ASTC_10x8_SFLOAT_BLOCK";
880 case (VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK
): return "FORMAT_ASTC_10x10_SFLOAT_BLOCK";
881 case (VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK
): return "FORMAT_ASTC_12x10_SFLOAT_BLOCK";
882 case (VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK
): return "FORMAT_ASTC_12x12_SFLOAT_BLOCK";
883 case (VK_FORMAT_A1B5G5R5_UNORM_PACK16
): return "FORMAT_A1B5G5R5_UNORM_PACK16";
884 case (VK_FORMAT_A8_UNORM
): return "FORMAT_A8_UNORM";
885 case (VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG
): return "FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
886 case (VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG
): return "FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
887 case (VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG
): return "FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
888 case (VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG
): return "FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
889 case (VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG
): return "FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
890 case (VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG
): return "FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
891 case (VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG
): return "FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
892 case (VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
): return "FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
893 case (VK_FORMAT_R16G16_SFIXED5_NV
): return "FORMAT_R16G16_SFIXED5_NV";
894 default: return std::string("UNKNOWN_VkFormat_value") + std::to_string(value
);
897 void DumpVkFormat(Printer
&p
, std::string name
, VkFormat value
) {
898 if (p
.Type() == OutputType::json
)
899 p
.PrintKeyString(name
, std::string("VK_") + VkFormatString(value
));
901 p
.PrintKeyString(name
, VkFormatString(value
));
903 std::string
VkImageLayoutString(VkImageLayout value
) {
905 case (VK_IMAGE_LAYOUT_UNDEFINED
): return "IMAGE_LAYOUT_UNDEFINED";
906 case (VK_IMAGE_LAYOUT_GENERAL
): return "IMAGE_LAYOUT_GENERAL";
907 case (VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
908 case (VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
909 case (VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
910 case (VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
911 case (VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
): return "IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
912 case (VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
): return "IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
913 case (VK_IMAGE_LAYOUT_PREINITIALIZED
): return "IMAGE_LAYOUT_PREINITIALIZED";
914 case (VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
915 case (VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
916 case (VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
917 case (VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
918 case (VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
919 case (VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
920 case (VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
921 case (VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
922 case (VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ
): return "IMAGE_LAYOUT_RENDERING_LOCAL_READ";
923 case (VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
): return "IMAGE_LAYOUT_PRESENT_SRC_KHR";
924 case (VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR
): return "IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
925 case (VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR
): return "IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
926 case (VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR
): return "IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
927 case (VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
): return "IMAGE_LAYOUT_SHARED_PRESENT_KHR";
928 case (VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
): return "IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
929 case (VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
): return "IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
930 case (VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR
): return "IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
931 case (VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR
): return "IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
932 case (VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR
): return "IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
933 case (VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
): return "IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT";
934 case (VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR
): return "IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR";
935 default: return std::string("UNKNOWN_VkImageLayout_value") + std::to_string(value
);
938 void DumpVkImageLayout(Printer
&p
, std::string name
, VkImageLayout value
) {
939 if (p
.Type() == OutputType::json
)
940 p
.PrintKeyString(name
, std::string("VK_") + VkImageLayoutString(value
));
942 p
.PrintKeyString(name
, VkImageLayoutString(value
));
944 std::string
VkImageTilingString(VkImageTiling value
) {
946 case (VK_IMAGE_TILING_OPTIMAL
): return "IMAGE_TILING_OPTIMAL";
947 case (VK_IMAGE_TILING_LINEAR
): return "IMAGE_TILING_LINEAR";
948 case (VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
): return "IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
949 default: return std::string("UNKNOWN_VkImageTiling_value") + std::to_string(value
);
952 void DumpVkImageTiling(Printer
&p
, std::string name
, VkImageTiling value
) {
953 if (p
.Type() == OutputType::json
)
954 p
.PrintKeyString(name
, std::string("VK_") + VkImageTilingString(value
));
956 p
.PrintKeyString(name
, VkImageTilingString(value
));
958 std::string
VkImageTypeString(VkImageType value
) {
960 case (VK_IMAGE_TYPE_1D
): return "IMAGE_TYPE_1D";
961 case (VK_IMAGE_TYPE_2D
): return "IMAGE_TYPE_2D";
962 case (VK_IMAGE_TYPE_3D
): return "IMAGE_TYPE_3D";
963 default: return std::string("UNKNOWN_VkImageType_value") + std::to_string(value
);
966 void DumpVkImageType(Printer
&p
, std::string name
, VkImageType value
) {
967 if (p
.Type() == OutputType::json
)
968 p
.PrintKeyString(name
, std::string("VK_") + VkImageTypeString(value
));
970 p
.PrintKeyString(name
, VkImageTypeString(value
));
972 std::string
VkPhysicalDeviceLayeredApiKHRString(VkPhysicalDeviceLayeredApiKHR value
) {
974 case (VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR";
975 case (VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR";
976 case (VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_METAL_KHR";
977 case (VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR";
978 case (VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR";
979 default: return std::string("UNKNOWN_VkPhysicalDeviceLayeredApiKHR_value") + std::to_string(value
);
982 void DumpVkPhysicalDeviceLayeredApiKHR(Printer
&p
, std::string name
, VkPhysicalDeviceLayeredApiKHR value
) {
983 if (p
.Type() == OutputType::json
)
984 p
.PrintKeyString(name
, std::string("VK_") + VkPhysicalDeviceLayeredApiKHRString(value
));
986 p
.PrintKeyString(name
, VkPhysicalDeviceLayeredApiKHRString(value
));
988 std::string
VkPhysicalDeviceTypeString(VkPhysicalDeviceType value
) {
990 case (VK_PHYSICAL_DEVICE_TYPE_OTHER
): return "PHYSICAL_DEVICE_TYPE_OTHER";
991 case (VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
): return "PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
992 case (VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
): return "PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
993 case (VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
): return "PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
994 case (VK_PHYSICAL_DEVICE_TYPE_CPU
): return "PHYSICAL_DEVICE_TYPE_CPU";
995 default: return std::string("UNKNOWN_VkPhysicalDeviceType_value") + std::to_string(value
);
998 void DumpVkPhysicalDeviceType(Printer
&p
, std::string name
, VkPhysicalDeviceType value
) {
999 if (p
.Type() == OutputType::json
)
1000 p
.PrintKeyString(name
, std::string("VK_") + VkPhysicalDeviceTypeString(value
));
1002 p
.PrintKeyString(name
, VkPhysicalDeviceTypeString(value
));
1004 std::string
VkPipelineRobustnessBufferBehaviorString(VkPipelineRobustnessBufferBehavior value
) {
1006 case (VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT
): return "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT";
1007 case (VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED
): return "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED";
1008 case (VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS
): return "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS";
1009 case (VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2
): return "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2";
1010 default: return std::string("UNKNOWN_VkPipelineRobustnessBufferBehavior_value") + std::to_string(value
);
1013 void DumpVkPipelineRobustnessBufferBehavior(Printer
&p
, std::string name
, VkPipelineRobustnessBufferBehavior value
) {
1014 if (p
.Type() == OutputType::json
)
1015 p
.PrintKeyString(name
, std::string("VK_") + VkPipelineRobustnessBufferBehaviorString(value
));
1017 p
.PrintKeyString(name
, VkPipelineRobustnessBufferBehaviorString(value
));
1019 std::string
VkPipelineRobustnessImageBehaviorString(VkPipelineRobustnessImageBehavior value
) {
1021 case (VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT
): return "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT";
1022 case (VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED
): return "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED";
1023 case (VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS
): return "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS";
1024 case (VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2
): return "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2";
1025 default: return std::string("UNKNOWN_VkPipelineRobustnessImageBehavior_value") + std::to_string(value
);
1028 void DumpVkPipelineRobustnessImageBehavior(Printer
&p
, std::string name
, VkPipelineRobustnessImageBehavior value
) {
1029 if (p
.Type() == OutputType::json
)
1030 p
.PrintKeyString(name
, std::string("VK_") + VkPipelineRobustnessImageBehaviorString(value
));
1032 p
.PrintKeyString(name
, VkPipelineRobustnessImageBehaviorString(value
));
1034 std::string
VkPointClippingBehaviorString(VkPointClippingBehavior value
) {
1036 case (VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
): return "POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
1037 case (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
): return "POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
1038 default: return std::string("UNKNOWN_VkPointClippingBehavior_value") + std::to_string(value
);
1041 void DumpVkPointClippingBehavior(Printer
&p
, std::string name
, VkPointClippingBehavior value
) {
1042 if (p
.Type() == OutputType::json
)
1043 p
.PrintKeyString(name
, std::string("VK_") + VkPointClippingBehaviorString(value
));
1045 p
.PrintKeyString(name
, VkPointClippingBehaviorString(value
));
1047 std::string
VkPresentModeKHRString(VkPresentModeKHR value
) {
1049 case (VK_PRESENT_MODE_IMMEDIATE_KHR
): return "PRESENT_MODE_IMMEDIATE_KHR";
1050 case (VK_PRESENT_MODE_MAILBOX_KHR
): return "PRESENT_MODE_MAILBOX_KHR";
1051 case (VK_PRESENT_MODE_FIFO_KHR
): return "PRESENT_MODE_FIFO_KHR";
1052 case (VK_PRESENT_MODE_FIFO_RELAXED_KHR
): return "PRESENT_MODE_FIFO_RELAXED_KHR";
1053 case (VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR
): return "PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
1054 case (VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
): return "PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
1055 case (VK_PRESENT_MODE_FIFO_LATEST_READY_EXT
): return "PRESENT_MODE_FIFO_LATEST_READY_EXT";
1056 default: return std::string("UNKNOWN_VkPresentModeKHR_value") + std::to_string(value
);
1059 void DumpVkPresentModeKHR(Printer
&p
, std::string name
, VkPresentModeKHR value
) {
1060 if (p
.Type() == OutputType::json
)
1061 p
.PrintKeyString(name
, std::string("VK_") + VkPresentModeKHRString(value
));
1063 p
.PrintKeyString(name
, VkPresentModeKHRString(value
));
1065 std::string
VkQueueGlobalPriorityString(VkQueueGlobalPriority value
) {
1067 case (VK_QUEUE_GLOBAL_PRIORITY_LOW
): return "QUEUE_GLOBAL_PRIORITY_LOW";
1068 case (VK_QUEUE_GLOBAL_PRIORITY_MEDIUM
): return "QUEUE_GLOBAL_PRIORITY_MEDIUM";
1069 case (VK_QUEUE_GLOBAL_PRIORITY_HIGH
): return "QUEUE_GLOBAL_PRIORITY_HIGH";
1070 case (VK_QUEUE_GLOBAL_PRIORITY_REALTIME
): return "QUEUE_GLOBAL_PRIORITY_REALTIME";
1071 default: return std::string("UNKNOWN_VkQueueGlobalPriority_value") + std::to_string(value
);
1074 void DumpVkQueueGlobalPriority(Printer
&p
, std::string name
, VkQueueGlobalPriority value
) {
1075 if (p
.Type() == OutputType::json
)
1076 p
.PrintKeyString(name
, std::string("VK_") + VkQueueGlobalPriorityString(value
));
1078 p
.PrintKeyString(name
, VkQueueGlobalPriorityString(value
));
1080 std::string
VkResultString(VkResult value
) {
1082 case (VK_SUCCESS
): return "SUCCESS";
1083 case (VK_NOT_READY
): return "NOT_READY";
1084 case (VK_TIMEOUT
): return "TIMEOUT";
1085 case (VK_EVENT_SET
): return "EVENT_SET";
1086 case (VK_EVENT_RESET
): return "EVENT_RESET";
1087 case (VK_INCOMPLETE
): return "INCOMPLETE";
1088 case (VK_ERROR_OUT_OF_HOST_MEMORY
): return "ERROR_OUT_OF_HOST_MEMORY";
1089 case (VK_ERROR_OUT_OF_DEVICE_MEMORY
): return "ERROR_OUT_OF_DEVICE_MEMORY";
1090 case (VK_ERROR_INITIALIZATION_FAILED
): return "ERROR_INITIALIZATION_FAILED";
1091 case (VK_ERROR_DEVICE_LOST
): return "ERROR_DEVICE_LOST";
1092 case (VK_ERROR_MEMORY_MAP_FAILED
): return "ERROR_MEMORY_MAP_FAILED";
1093 case (VK_ERROR_LAYER_NOT_PRESENT
): return "ERROR_LAYER_NOT_PRESENT";
1094 case (VK_ERROR_EXTENSION_NOT_PRESENT
): return "ERROR_EXTENSION_NOT_PRESENT";
1095 case (VK_ERROR_FEATURE_NOT_PRESENT
): return "ERROR_FEATURE_NOT_PRESENT";
1096 case (VK_ERROR_INCOMPATIBLE_DRIVER
): return "ERROR_INCOMPATIBLE_DRIVER";
1097 case (VK_ERROR_TOO_MANY_OBJECTS
): return "ERROR_TOO_MANY_OBJECTS";
1098 case (VK_ERROR_FORMAT_NOT_SUPPORTED
): return "ERROR_FORMAT_NOT_SUPPORTED";
1099 case (VK_ERROR_FRAGMENTED_POOL
): return "ERROR_FRAGMENTED_POOL";
1100 case (VK_ERROR_UNKNOWN
): return "ERROR_UNKNOWN";
1101 case (VK_ERROR_OUT_OF_POOL_MEMORY
): return "ERROR_OUT_OF_POOL_MEMORY";
1102 case (VK_ERROR_INVALID_EXTERNAL_HANDLE
): return "ERROR_INVALID_EXTERNAL_HANDLE";
1103 case (VK_ERROR_FRAGMENTATION
): return "ERROR_FRAGMENTATION";
1104 case (VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS
): return "ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
1105 case (VK_PIPELINE_COMPILE_REQUIRED
): return "PIPELINE_COMPILE_REQUIRED";
1106 case (VK_ERROR_NOT_PERMITTED
): return "ERROR_NOT_PERMITTED";
1107 case (VK_ERROR_SURFACE_LOST_KHR
): return "ERROR_SURFACE_LOST_KHR";
1108 case (VK_ERROR_NATIVE_WINDOW_IN_USE_KHR
): return "ERROR_NATIVE_WINDOW_IN_USE_KHR";
1109 case (VK_SUBOPTIMAL_KHR
): return "SUBOPTIMAL_KHR";
1110 case (VK_ERROR_OUT_OF_DATE_KHR
): return "ERROR_OUT_OF_DATE_KHR";
1111 case (VK_ERROR_INCOMPATIBLE_DISPLAY_KHR
): return "ERROR_INCOMPATIBLE_DISPLAY_KHR";
1112 case (VK_ERROR_VALIDATION_FAILED_EXT
): return "ERROR_VALIDATION_FAILED_EXT";
1113 case (VK_ERROR_INVALID_SHADER_NV
): return "ERROR_INVALID_SHADER_NV";
1114 case (VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR
): return "ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
1115 case (VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
1116 case (VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
1117 case (VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
1118 case (VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
1119 case (VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
1120 case (VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT
): return "ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
1121 case (VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
): return "ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
1122 case (VK_THREAD_IDLE_KHR
): return "THREAD_IDLE_KHR";
1123 case (VK_THREAD_DONE_KHR
): return "THREAD_DONE_KHR";
1124 case (VK_OPERATION_DEFERRED_KHR
): return "OPERATION_DEFERRED_KHR";
1125 case (VK_OPERATION_NOT_DEFERRED_KHR
): return "OPERATION_NOT_DEFERRED_KHR";
1126 case (VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR
): return "ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR";
1127 case (VK_ERROR_COMPRESSION_EXHAUSTED_EXT
): return "ERROR_COMPRESSION_EXHAUSTED_EXT";
1128 case (VK_INCOMPATIBLE_SHADER_BINARY_EXT
): return "INCOMPATIBLE_SHADER_BINARY_EXT";
1129 case (VK_PIPELINE_BINARY_MISSING_KHR
): return "PIPELINE_BINARY_MISSING_KHR";
1130 case (VK_ERROR_NOT_ENOUGH_SPACE_KHR
): return "ERROR_NOT_ENOUGH_SPACE_KHR";
1131 default: return std::string("UNKNOWN_VkResult_value") + std::to_string(value
);
1134 void DumpVkResult(Printer
&p
, std::string name
, VkResult value
) {
1135 if (p
.Type() == OutputType::json
)
1136 p
.PrintKeyString(name
, std::string("VK_") + VkResultString(value
));
1138 p
.PrintKeyString(name
, VkResultString(value
));
1140 std::string
VkShaderFloatControlsIndependenceString(VkShaderFloatControlsIndependence value
) {
1142 case (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
): return "SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
1143 case (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
): return "SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
1144 case (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
): return "SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
1145 default: return std::string("UNKNOWN_VkShaderFloatControlsIndependence_value") + std::to_string(value
);
1148 void DumpVkShaderFloatControlsIndependence(Printer
&p
, std::string name
, VkShaderFloatControlsIndependence value
) {
1149 if (p
.Type() == OutputType::json
)
1150 p
.PrintKeyString(name
, std::string("VK_") + VkShaderFloatControlsIndependenceString(value
));
1152 p
.PrintKeyString(name
, VkShaderFloatControlsIndependenceString(value
));
1154 std::string
VkVideoEncodeTuningModeKHRString(VkVideoEncodeTuningModeKHR value
) {
1156 case (VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR
): return "VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR";
1157 case (VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR
): return "VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR";
1158 case (VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR
): return "VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR";
1159 case (VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR
): return "VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR";
1160 case (VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR
): return "VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR";
1161 default: return std::string("UNKNOWN_VkVideoEncodeTuningModeKHR_value") + std::to_string(value
);
1164 void DumpVkVideoEncodeTuningModeKHR(Printer
&p
, std::string name
, VkVideoEncodeTuningModeKHR value
) {
1165 if (p
.Type() == OutputType::json
)
1166 p
.PrintKeyString(name
, std::string("VK_") + VkVideoEncodeTuningModeKHRString(value
));
1168 p
.PrintKeyString(name
, VkVideoEncodeTuningModeKHRString(value
));
1170 std::vector
<const char *> VkCompositeAlphaFlagBitsKHRGetStrings(VkCompositeAlphaFlagBitsKHR value
) {
1171 std::vector
<const char *> strings
;
1172 if (value
== 0) { strings
.push_back("None"); return strings
; }
1173 if (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
& value
) strings
.push_back("COMPOSITE_ALPHA_OPAQUE_BIT_KHR");
1174 if (VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
& value
) strings
.push_back("COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR");
1175 if (VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR
& value
) strings
.push_back("COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR");
1176 if (VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
& value
) strings
.push_back("COMPOSITE_ALPHA_INHERIT_BIT_KHR");
1179 void DumpVkCompositeAlphaFlagsKHR(Printer
&p
, std::string name
, VkCompositeAlphaFlagsKHR value
) {
1180 if (static_cast<VkCompositeAlphaFlagBitsKHR
>(value
) == 0) {
1181 ArrayWrapper
arr(p
, name
, 0);
1182 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1183 p
.SetAsType().PrintString("None");
1186 auto strings
= VkCompositeAlphaFlagBitsKHRGetStrings(static_cast<VkCompositeAlphaFlagBitsKHR
>(value
));
1187 ArrayWrapper
arr(p
, name
, strings
.size());
1188 for(auto& str
: strings
){
1189 if (p
.Type() == OutputType::json
)
1190 p
.SetAsType().PrintString(std::string("VK_") + str
);
1192 p
.SetAsType().PrintString(str
);
1195 void DumpVkCompositeAlphaFlagBitsKHR(Printer
&p
, std::string name
, VkCompositeAlphaFlagBitsKHR value
) {
1196 auto strings
= VkCompositeAlphaFlagBitsKHRGetStrings(value
);
1197 if (strings
.size() > 0) {
1198 if (p
.Type() == OutputType::json
)
1199 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1201 p
.PrintKeyString(name
, strings
.at(0));
1205 std::vector
<const char *> VkDeviceGroupPresentModeFlagBitsKHRGetStrings(VkDeviceGroupPresentModeFlagBitsKHR value
) {
1206 std::vector
<const char *> strings
;
1207 if (value
== 0) { strings
.push_back("None"); return strings
; }
1208 if (VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
& value
) strings
.push_back("DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR");
1209 if (VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR
& value
) strings
.push_back("DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR");
1210 if (VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR
& value
) strings
.push_back("DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR");
1211 if (VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
& value
) strings
.push_back("DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR");
1214 void DumpVkDeviceGroupPresentModeFlagsKHR(Printer
&p
, std::string name
, VkDeviceGroupPresentModeFlagsKHR value
) {
1215 if (static_cast<VkDeviceGroupPresentModeFlagBitsKHR
>(value
) == 0) {
1216 ArrayWrapper
arr(p
, name
, 0);
1217 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1218 p
.SetAsType().PrintString("None");
1221 auto strings
= VkDeviceGroupPresentModeFlagBitsKHRGetStrings(static_cast<VkDeviceGroupPresentModeFlagBitsKHR
>(value
));
1222 ArrayWrapper
arr(p
, name
, strings
.size());
1223 for(auto& str
: strings
){
1224 if (p
.Type() == OutputType::json
)
1225 p
.SetAsType().PrintString(std::string("VK_") + str
);
1227 p
.SetAsType().PrintString(str
);
1230 void DumpVkDeviceGroupPresentModeFlagBitsKHR(Printer
&p
, std::string name
, VkDeviceGroupPresentModeFlagBitsKHR value
) {
1231 auto strings
= VkDeviceGroupPresentModeFlagBitsKHRGetStrings(value
);
1232 if (strings
.size() > 0) {
1233 if (p
.Type() == OutputType::json
)
1234 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1236 p
.PrintKeyString(name
, strings
.at(0));
1240 std::vector
<const char *> VkFormatFeatureFlagBitsGetStrings(VkFormatFeatureFlagBits value
) {
1241 std::vector
<const char *> strings
;
1242 if (value
== 0) { strings
.push_back("None"); return strings
; }
1243 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_BIT");
1244 if (VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_STORAGE_IMAGE_BIT");
1245 if (VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT");
1246 if (VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT");
1247 if (VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT");
1248 if (VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT");
1249 if (VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_VERTEX_BUFFER_BIT");
1250 if (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_COLOR_ATTACHMENT_BIT");
1251 if (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
& value
) strings
.push_back("FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT");
1252 if (VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT");
1253 if (VK_FORMAT_FEATURE_BLIT_SRC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_BLIT_SRC_BIT");
1254 if (VK_FORMAT_FEATURE_BLIT_DST_BIT
& value
) strings
.push_back("FORMAT_FEATURE_BLIT_DST_BIT");
1255 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT");
1256 if (VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_TRANSFER_SRC_BIT");
1257 if (VK_FORMAT_FEATURE_TRANSFER_DST_BIT
& value
) strings
.push_back("FORMAT_FEATURE_TRANSFER_DST_BIT");
1258 if (VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
& value
) strings
.push_back("FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT");
1259 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT");
1260 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT");
1261 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT");
1262 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT");
1263 if (VK_FORMAT_FEATURE_DISJOINT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_DISJOINT_BIT");
1264 if (VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
& value
) strings
.push_back("FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT");
1265 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT");
1266 if (VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR");
1267 if (VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR");
1268 if (VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR");
1269 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT");
1270 if (VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT
& value
) strings
.push_back("FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT");
1271 if (VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR");
1272 if (VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR");
1273 if (VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR");
1276 void DumpVkFormatFeatureFlags(Printer
&p
, std::string name
, VkFormatFeatureFlags value
) {
1277 if (static_cast<VkFormatFeatureFlagBits
>(value
) == 0) {
1278 ArrayWrapper
arr(p
, name
, 0);
1279 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1280 p
.SetAsType().PrintString("None");
1283 auto strings
= VkFormatFeatureFlagBitsGetStrings(static_cast<VkFormatFeatureFlagBits
>(value
));
1284 ArrayWrapper
arr(p
, name
, strings
.size());
1285 for(auto& str
: strings
){
1286 if (p
.Type() == OutputType::json
)
1287 p
.SetAsType().PrintString(std::string("VK_") + str
);
1289 p
.SetAsType().PrintString(str
);
1292 void DumpVkFormatFeatureFlagBits(Printer
&p
, std::string name
, VkFormatFeatureFlagBits value
) {
1293 auto strings
= VkFormatFeatureFlagBitsGetStrings(value
);
1294 if (strings
.size() > 0) {
1295 if (p
.Type() == OutputType::json
)
1296 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1298 p
.PrintKeyString(name
, strings
.at(0));
1302 std::vector
<const char *> VkFormatFeatureFlagBits2GetStrings(VkFormatFeatureFlagBits2 value
) {
1303 std::vector
<const char *> strings
;
1304 if (value
== 0) { strings
.push_back("None"); return strings
; }
1305 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT");
1306 if (VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_IMAGE_BIT");
1307 if (VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT");
1308 if (VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT");
1309 if (VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT");
1310 if (VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT");
1311 if (VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_VERTEX_BUFFER_BIT");
1312 if (VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT");
1313 if (VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT");
1314 if (VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT");
1315 if (VK_FORMAT_FEATURE_2_BLIT_SRC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_BLIT_SRC_BIT");
1316 if (VK_FORMAT_FEATURE_2_BLIT_DST_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_BLIT_DST_BIT");
1317 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT");
1318 if (VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_TRANSFER_SRC_BIT");
1319 if (VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_TRANSFER_DST_BIT");
1320 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT");
1321 if (VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT");
1322 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT");
1323 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT");
1324 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT");
1325 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT");
1326 if (VK_FORMAT_FEATURE_2_DISJOINT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_DISJOINT_BIT");
1327 if (VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT");
1328 if (VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT");
1329 if (VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT");
1330 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT");
1331 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT");
1332 if (VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT");
1333 if (VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR");
1334 if (VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR");
1335 if (VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR");
1336 if (VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT
& value
) strings
.push_back("FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT");
1337 if (VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR");
1338 if (VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR");
1339 if (VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR");
1340 if (VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
& value
) strings
.push_back("FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV");
1341 if (VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
& value
) strings
.push_back("FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM");
1342 if (VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
& value
) strings
.push_back("FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM");
1343 if (VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
& value
) strings
.push_back("FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM");
1344 if (VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
& value
) strings
.push_back("FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM");
1345 if (VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV
& value
) strings
.push_back("FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV");
1346 if (VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV
& value
) strings
.push_back("FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV");
1347 if (VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV
& value
) strings
.push_back("FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV");
1348 if (VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR");
1349 if (VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR");
1352 void DumpVkFormatFeatureFlags2(Printer
&p
, std::string name
, VkFormatFeatureFlags2 value
) {
1353 if (static_cast<VkFormatFeatureFlagBits2
>(value
) == 0) {
1354 ArrayWrapper
arr(p
, name
, 0);
1355 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1356 p
.SetAsType().PrintString("None");
1359 auto strings
= VkFormatFeatureFlagBits2GetStrings(static_cast<VkFormatFeatureFlagBits2
>(value
));
1360 ArrayWrapper
arr(p
, name
, strings
.size());
1361 for(auto& str
: strings
){
1362 if (p
.Type() == OutputType::json
)
1363 p
.SetAsType().PrintString(std::string("VK_") + str
);
1365 p
.SetAsType().PrintString(str
);
1368 void DumpVkFormatFeatureFlagBits2(Printer
&p
, std::string name
, VkFormatFeatureFlagBits2 value
) {
1369 auto strings
= VkFormatFeatureFlagBits2GetStrings(value
);
1370 if (strings
.size() > 0) {
1371 if (p
.Type() == OutputType::json
)
1372 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1374 p
.PrintKeyString(name
, strings
.at(0));
1378 std::vector
<const char *> VkImageCreateFlagBitsGetStrings(VkImageCreateFlagBits value
) {
1379 std::vector
<const char *> strings
;
1380 if (value
== 0) { strings
.push_back("None"); return strings
; }
1381 if (VK_IMAGE_CREATE_SPARSE_BINDING_BIT
& value
) strings
.push_back("IMAGE_CREATE_SPARSE_BINDING_BIT");
1382 if (VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT
& value
) strings
.push_back("IMAGE_CREATE_SPARSE_RESIDENCY_BIT");
1383 if (VK_IMAGE_CREATE_SPARSE_ALIASED_BIT
& value
) strings
.push_back("IMAGE_CREATE_SPARSE_ALIASED_BIT");
1384 if (VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT
& value
) strings
.push_back("IMAGE_CREATE_MUTABLE_FORMAT_BIT");
1385 if (VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT
& value
) strings
.push_back("IMAGE_CREATE_CUBE_COMPATIBLE_BIT");
1386 if (VK_IMAGE_CREATE_ALIAS_BIT
& value
) strings
.push_back("IMAGE_CREATE_ALIAS_BIT");
1387 if (VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT
& value
) strings
.push_back("IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT");
1388 if (VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT
& value
) strings
.push_back("IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT");
1389 if (VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT
& value
) strings
.push_back("IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT");
1390 if (VK_IMAGE_CREATE_EXTENDED_USAGE_BIT
& value
) strings
.push_back("IMAGE_CREATE_EXTENDED_USAGE_BIT");
1391 if (VK_IMAGE_CREATE_PROTECTED_BIT
& value
) strings
.push_back("IMAGE_CREATE_PROTECTED_BIT");
1392 if (VK_IMAGE_CREATE_DISJOINT_BIT
& value
) strings
.push_back("IMAGE_CREATE_DISJOINT_BIT");
1393 if (VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV
& value
) strings
.push_back("IMAGE_CREATE_CORNER_SAMPLED_BIT_NV");
1394 if (VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
& value
) strings
.push_back("IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT");
1395 if (VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
& value
) strings
.push_back("IMAGE_CREATE_SUBSAMPLED_BIT_EXT");
1396 if (VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT
& value
) strings
.push_back("IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT");
1397 if (VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT
& value
) strings
.push_back("IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT");
1398 if (VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT
& value
) strings
.push_back("IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT");
1399 if (VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
& value
) strings
.push_back("IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM");
1400 if (VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR
& value
) strings
.push_back("IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR");
1403 void DumpVkImageCreateFlags(Printer
&p
, std::string name
, VkImageCreateFlags value
) {
1404 if (static_cast<VkImageCreateFlagBits
>(value
) == 0) {
1405 ArrayWrapper
arr(p
, name
, 0);
1406 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1407 p
.SetAsType().PrintString("None");
1410 auto strings
= VkImageCreateFlagBitsGetStrings(static_cast<VkImageCreateFlagBits
>(value
));
1411 ArrayWrapper
arr(p
, name
, strings
.size());
1412 for(auto& str
: strings
){
1413 if (p
.Type() == OutputType::json
)
1414 p
.SetAsType().PrintString(std::string("VK_") + str
);
1416 p
.SetAsType().PrintString(str
);
1419 void DumpVkImageCreateFlagBits(Printer
&p
, std::string name
, VkImageCreateFlagBits value
) {
1420 auto strings
= VkImageCreateFlagBitsGetStrings(value
);
1421 if (strings
.size() > 0) {
1422 if (p
.Type() == OutputType::json
)
1423 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1425 p
.PrintKeyString(name
, strings
.at(0));
1429 std::vector
<const char *> VkImageUsageFlagBitsGetStrings(VkImageUsageFlagBits value
) {
1430 std::vector
<const char *> strings
;
1431 if (value
== 0) { strings
.push_back("None"); return strings
; }
1432 if (VK_IMAGE_USAGE_TRANSFER_SRC_BIT
& value
) strings
.push_back("IMAGE_USAGE_TRANSFER_SRC_BIT");
1433 if (VK_IMAGE_USAGE_TRANSFER_DST_BIT
& value
) strings
.push_back("IMAGE_USAGE_TRANSFER_DST_BIT");
1434 if (VK_IMAGE_USAGE_SAMPLED_BIT
& value
) strings
.push_back("IMAGE_USAGE_SAMPLED_BIT");
1435 if (VK_IMAGE_USAGE_STORAGE_BIT
& value
) strings
.push_back("IMAGE_USAGE_STORAGE_BIT");
1436 if (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
& value
) strings
.push_back("IMAGE_USAGE_COLOR_ATTACHMENT_BIT");
1437 if (VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
& value
) strings
.push_back("IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT");
1438 if (VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
& value
) strings
.push_back("IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT");
1439 if (VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
& value
) strings
.push_back("IMAGE_USAGE_INPUT_ATTACHMENT_BIT");
1440 if (VK_IMAGE_USAGE_HOST_TRANSFER_BIT
& value
) strings
.push_back("IMAGE_USAGE_HOST_TRANSFER_BIT");
1441 if (VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR");
1442 if (VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR");
1443 if (VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR");
1444 if (VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
& value
) strings
.push_back("IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT");
1445 if (VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR");
1446 if (VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR");
1447 if (VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR");
1448 if (VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR");
1449 if (VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
& value
) strings
.push_back("IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT");
1450 if (VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI
& value
) strings
.push_back("IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI");
1451 if (VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM
& value
) strings
.push_back("IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM");
1452 if (VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM
& value
) strings
.push_back("IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM");
1453 if (VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR");
1454 if (VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR");
1457 void DumpVkImageUsageFlags(Printer
&p
, std::string name
, VkImageUsageFlags value
) {
1458 if (static_cast<VkImageUsageFlagBits
>(value
) == 0) {
1459 ArrayWrapper
arr(p
, name
, 0);
1460 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1461 p
.SetAsType().PrintString("None");
1464 auto strings
= VkImageUsageFlagBitsGetStrings(static_cast<VkImageUsageFlagBits
>(value
));
1465 ArrayWrapper
arr(p
, name
, strings
.size());
1466 for(auto& str
: strings
){
1467 if (p
.Type() == OutputType::json
)
1468 p
.SetAsType().PrintString(std::string("VK_") + str
);
1470 p
.SetAsType().PrintString(str
);
1473 void DumpVkImageUsageFlagBits(Printer
&p
, std::string name
, VkImageUsageFlagBits value
) {
1474 auto strings
= VkImageUsageFlagBitsGetStrings(value
);
1475 if (strings
.size() > 0) {
1476 if (p
.Type() == OutputType::json
)
1477 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1479 p
.PrintKeyString(name
, strings
.at(0));
1483 std::vector
<const char *> VkIndirectCommandsInputModeFlagBitsEXTGetStrings(VkIndirectCommandsInputModeFlagBitsEXT value
) {
1484 std::vector
<const char *> strings
;
1485 if (value
== 0) { strings
.push_back("None"); return strings
; }
1486 if (VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT
& value
) strings
.push_back("INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT");
1487 if (VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT
& value
) strings
.push_back("INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT");
1490 void DumpVkIndirectCommandsInputModeFlagsEXT(Printer
&p
, std::string name
, VkIndirectCommandsInputModeFlagsEXT value
) {
1491 if (static_cast<VkIndirectCommandsInputModeFlagBitsEXT
>(value
) == 0) {
1492 ArrayWrapper
arr(p
, name
, 0);
1493 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1494 p
.SetAsType().PrintString("None");
1497 auto strings
= VkIndirectCommandsInputModeFlagBitsEXTGetStrings(static_cast<VkIndirectCommandsInputModeFlagBitsEXT
>(value
));
1498 ArrayWrapper
arr(p
, name
, strings
.size());
1499 for(auto& str
: strings
){
1500 if (p
.Type() == OutputType::json
)
1501 p
.SetAsType().PrintString(std::string("VK_") + str
);
1503 p
.SetAsType().PrintString(str
);
1506 void DumpVkIndirectCommandsInputModeFlagBitsEXT(Printer
&p
, std::string name
, VkIndirectCommandsInputModeFlagBitsEXT value
) {
1507 auto strings
= VkIndirectCommandsInputModeFlagBitsEXTGetStrings(value
);
1508 if (strings
.size() > 0) {
1509 if (p
.Type() == OutputType::json
)
1510 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1512 p
.PrintKeyString(name
, strings
.at(0));
1516 std::vector
<const char *> VkMemoryHeapFlagBitsGetStrings(VkMemoryHeapFlagBits value
) {
1517 std::vector
<const char *> strings
;
1518 if (value
== 0) { strings
.push_back("None"); return strings
; }
1519 if (VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
& value
) strings
.push_back("MEMORY_HEAP_DEVICE_LOCAL_BIT");
1520 if (VK_MEMORY_HEAP_MULTI_INSTANCE_BIT
& value
) strings
.push_back("MEMORY_HEAP_MULTI_INSTANCE_BIT");
1523 void DumpVkMemoryHeapFlags(Printer
&p
, std::string name
, VkMemoryHeapFlags value
) {
1524 if (static_cast<VkMemoryHeapFlagBits
>(value
) == 0) {
1525 ArrayWrapper
arr(p
, name
, 0);
1526 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1527 p
.SetAsType().PrintString("None");
1530 auto strings
= VkMemoryHeapFlagBitsGetStrings(static_cast<VkMemoryHeapFlagBits
>(value
));
1531 ArrayWrapper
arr(p
, name
, strings
.size());
1532 for(auto& str
: strings
){
1533 if (p
.Type() == OutputType::json
)
1534 p
.SetAsType().PrintString(std::string("VK_") + str
);
1536 p
.SetAsType().PrintString(str
);
1539 void DumpVkMemoryHeapFlagBits(Printer
&p
, std::string name
, VkMemoryHeapFlagBits value
) {
1540 auto strings
= VkMemoryHeapFlagBitsGetStrings(value
);
1541 if (strings
.size() > 0) {
1542 if (p
.Type() == OutputType::json
)
1543 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1545 p
.PrintKeyString(name
, strings
.at(0));
1549 std::vector
<const char *> VkMemoryPropertyFlagBitsGetStrings(VkMemoryPropertyFlagBits value
) {
1550 std::vector
<const char *> strings
;
1551 if (value
== 0) { strings
.push_back("None"); return strings
; }
1552 if (VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_DEVICE_LOCAL_BIT");
1553 if (VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_HOST_VISIBLE_BIT");
1554 if (VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_HOST_COHERENT_BIT");
1555 if (VK_MEMORY_PROPERTY_HOST_CACHED_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_HOST_CACHED_BIT");
1556 if (VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT");
1557 if (VK_MEMORY_PROPERTY_PROTECTED_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_PROTECTED_BIT");
1558 if (VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
& value
) strings
.push_back("MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD");
1559 if (VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
& value
) strings
.push_back("MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD");
1560 if (VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
& value
) strings
.push_back("MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV");
1563 void DumpVkMemoryPropertyFlags(Printer
&p
, std::string name
, VkMemoryPropertyFlags value
) {
1564 if (static_cast<VkMemoryPropertyFlagBits
>(value
) == 0) {
1565 ArrayWrapper
arr(p
, name
, 0);
1566 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1567 p
.SetAsType().PrintString("None");
1570 auto strings
= VkMemoryPropertyFlagBitsGetStrings(static_cast<VkMemoryPropertyFlagBits
>(value
));
1571 ArrayWrapper
arr(p
, name
, strings
.size());
1572 for(auto& str
: strings
){
1573 if (p
.Type() == OutputType::json
)
1574 p
.SetAsType().PrintString(std::string("VK_") + str
);
1576 p
.SetAsType().PrintString(str
);
1579 void DumpVkMemoryPropertyFlagBits(Printer
&p
, std::string name
, VkMemoryPropertyFlagBits value
) {
1580 auto strings
= VkMemoryPropertyFlagBitsGetStrings(value
);
1581 if (strings
.size() > 0) {
1582 if (p
.Type() == OutputType::json
)
1583 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1585 p
.PrintKeyString(name
, strings
.at(0));
1589 std::vector
<const char *> VkPresentGravityFlagBitsEXTGetStrings(VkPresentGravityFlagBitsEXT value
) {
1590 std::vector
<const char *> strings
;
1591 if (value
== 0) { strings
.push_back("None"); return strings
; }
1592 if (VK_PRESENT_GRAVITY_MIN_BIT_EXT
& value
) strings
.push_back("PRESENT_GRAVITY_MIN_BIT_EXT");
1593 if (VK_PRESENT_GRAVITY_MAX_BIT_EXT
& value
) strings
.push_back("PRESENT_GRAVITY_MAX_BIT_EXT");
1594 if (VK_PRESENT_GRAVITY_CENTERED_BIT_EXT
& value
) strings
.push_back("PRESENT_GRAVITY_CENTERED_BIT_EXT");
1597 void DumpVkPresentGravityFlagsEXT(Printer
&p
, std::string name
, VkPresentGravityFlagsEXT value
) {
1598 if (static_cast<VkPresentGravityFlagBitsEXT
>(value
) == 0) {
1599 ArrayWrapper
arr(p
, name
, 0);
1600 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1601 p
.SetAsType().PrintString("None");
1604 auto strings
= VkPresentGravityFlagBitsEXTGetStrings(static_cast<VkPresentGravityFlagBitsEXT
>(value
));
1605 ArrayWrapper
arr(p
, name
, strings
.size());
1606 for(auto& str
: strings
){
1607 if (p
.Type() == OutputType::json
)
1608 p
.SetAsType().PrintString(std::string("VK_") + str
);
1610 p
.SetAsType().PrintString(str
);
1613 void DumpVkPresentGravityFlagBitsEXT(Printer
&p
, std::string name
, VkPresentGravityFlagBitsEXT value
) {
1614 auto strings
= VkPresentGravityFlagBitsEXTGetStrings(value
);
1615 if (strings
.size() > 0) {
1616 if (p
.Type() == OutputType::json
)
1617 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1619 p
.PrintKeyString(name
, strings
.at(0));
1623 std::vector
<const char *> VkPresentScalingFlagBitsEXTGetStrings(VkPresentScalingFlagBitsEXT value
) {
1624 std::vector
<const char *> strings
;
1625 if (value
== 0) { strings
.push_back("None"); return strings
; }
1626 if (VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT
& value
) strings
.push_back("PRESENT_SCALING_ONE_TO_ONE_BIT_EXT");
1627 if (VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT
& value
) strings
.push_back("PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT");
1628 if (VK_PRESENT_SCALING_STRETCH_BIT_EXT
& value
) strings
.push_back("PRESENT_SCALING_STRETCH_BIT_EXT");
1631 void DumpVkPresentScalingFlagsEXT(Printer
&p
, std::string name
, VkPresentScalingFlagsEXT value
) {
1632 if (static_cast<VkPresentScalingFlagBitsEXT
>(value
) == 0) {
1633 ArrayWrapper
arr(p
, name
, 0);
1634 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1635 p
.SetAsType().PrintString("None");
1638 auto strings
= VkPresentScalingFlagBitsEXTGetStrings(static_cast<VkPresentScalingFlagBitsEXT
>(value
));
1639 ArrayWrapper
arr(p
, name
, strings
.size());
1640 for(auto& str
: strings
){
1641 if (p
.Type() == OutputType::json
)
1642 p
.SetAsType().PrintString(std::string("VK_") + str
);
1644 p
.SetAsType().PrintString(str
);
1647 void DumpVkPresentScalingFlagBitsEXT(Printer
&p
, std::string name
, VkPresentScalingFlagBitsEXT value
) {
1648 auto strings
= VkPresentScalingFlagBitsEXTGetStrings(value
);
1649 if (strings
.size() > 0) {
1650 if (p
.Type() == OutputType::json
)
1651 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1653 p
.PrintKeyString(name
, strings
.at(0));
1657 std::vector
<const char *> VkQueueFlagBitsGetStrings(VkQueueFlagBits value
) {
1658 std::vector
<const char *> strings
;
1659 if (value
== 0) { strings
.push_back("None"); return strings
; }
1660 if (VK_QUEUE_GRAPHICS_BIT
& value
) strings
.push_back("QUEUE_GRAPHICS_BIT");
1661 if (VK_QUEUE_COMPUTE_BIT
& value
) strings
.push_back("QUEUE_COMPUTE_BIT");
1662 if (VK_QUEUE_TRANSFER_BIT
& value
) strings
.push_back("QUEUE_TRANSFER_BIT");
1663 if (VK_QUEUE_SPARSE_BINDING_BIT
& value
) strings
.push_back("QUEUE_SPARSE_BINDING_BIT");
1664 if (VK_QUEUE_PROTECTED_BIT
& value
) strings
.push_back("QUEUE_PROTECTED_BIT");
1665 if (VK_QUEUE_VIDEO_DECODE_BIT_KHR
& value
) strings
.push_back("QUEUE_VIDEO_DECODE_BIT_KHR");
1666 if (VK_QUEUE_VIDEO_ENCODE_BIT_KHR
& value
) strings
.push_back("QUEUE_VIDEO_ENCODE_BIT_KHR");
1667 if (VK_QUEUE_OPTICAL_FLOW_BIT_NV
& value
) strings
.push_back("QUEUE_OPTICAL_FLOW_BIT_NV");
1670 void DumpVkQueueFlags(Printer
&p
, std::string name
, VkQueueFlags value
) {
1671 if (static_cast<VkQueueFlagBits
>(value
) == 0) {
1672 ArrayWrapper
arr(p
, name
, 0);
1673 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1674 p
.SetAsType().PrintString("None");
1677 auto strings
= VkQueueFlagBitsGetStrings(static_cast<VkQueueFlagBits
>(value
));
1678 ArrayWrapper
arr(p
, name
, strings
.size());
1679 for(auto& str
: strings
){
1680 if (p
.Type() == OutputType::json
)
1681 p
.SetAsType().PrintString(std::string("VK_") + str
);
1683 p
.SetAsType().PrintString(str
);
1686 void DumpVkQueueFlagBits(Printer
&p
, std::string name
, VkQueueFlagBits value
) {
1687 auto strings
= VkQueueFlagBitsGetStrings(value
);
1688 if (strings
.size() > 0) {
1689 if (p
.Type() == OutputType::json
)
1690 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1692 p
.PrintKeyString(name
, strings
.at(0));
1696 std::string
VkQueueFlagsString(VkQueueFlags value
) {
1698 bool is_first
= true;
1699 if (VK_QUEUE_GRAPHICS_BIT
& value
) {
1700 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1701 out
+= "QUEUE_GRAPHICS_BIT";
1703 if (VK_QUEUE_COMPUTE_BIT
& value
) {
1704 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1705 out
+= "QUEUE_COMPUTE_BIT";
1707 if (VK_QUEUE_TRANSFER_BIT
& value
) {
1708 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1709 out
+= "QUEUE_TRANSFER_BIT";
1711 if (VK_QUEUE_SPARSE_BINDING_BIT
& value
) {
1712 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1713 out
+= "QUEUE_SPARSE_BINDING_BIT";
1715 if (VK_QUEUE_PROTECTED_BIT
& value
) {
1716 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1717 out
+= "QUEUE_PROTECTED_BIT";
1719 if (VK_QUEUE_VIDEO_DECODE_BIT_KHR
& value
) {
1720 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1721 out
+= "QUEUE_VIDEO_DECODE_BIT_KHR";
1723 if (VK_QUEUE_VIDEO_ENCODE_BIT_KHR
& value
) {
1724 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1725 out
+= "QUEUE_VIDEO_ENCODE_BIT_KHR";
1727 if (VK_QUEUE_OPTICAL_FLOW_BIT_NV
& value
) {
1728 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1729 out
+= "QUEUE_OPTICAL_FLOW_BIT_NV";
1733 std::vector
<const char *> VkResolveModeFlagBitsGetStrings(VkResolveModeFlagBits value
) {
1734 std::vector
<const char *> strings
;
1735 if (value
== 0) { strings
.push_back("RESOLVE_MODE_NONE"); return strings
; }
1736 if (VK_RESOLVE_MODE_SAMPLE_ZERO_BIT
& value
) strings
.push_back("RESOLVE_MODE_SAMPLE_ZERO_BIT");
1737 if (VK_RESOLVE_MODE_AVERAGE_BIT
& value
) strings
.push_back("RESOLVE_MODE_AVERAGE_BIT");
1738 if (VK_RESOLVE_MODE_MIN_BIT
& value
) strings
.push_back("RESOLVE_MODE_MIN_BIT");
1739 if (VK_RESOLVE_MODE_MAX_BIT
& value
) strings
.push_back("RESOLVE_MODE_MAX_BIT");
1740 if (VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
& value
) strings
.push_back("RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID");
1743 void DumpVkResolveModeFlags(Printer
&p
, std::string name
, VkResolveModeFlags value
) {
1744 if (static_cast<VkResolveModeFlagBits
>(value
) == 0) {
1745 ArrayWrapper
arr(p
, name
, 0);
1746 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1747 p
.SetAsType().PrintString("None");
1750 auto strings
= VkResolveModeFlagBitsGetStrings(static_cast<VkResolveModeFlagBits
>(value
));
1751 ArrayWrapper
arr(p
, name
, strings
.size());
1752 for(auto& str
: strings
){
1753 if (p
.Type() == OutputType::json
)
1754 p
.SetAsType().PrintString(std::string("VK_") + str
);
1756 p
.SetAsType().PrintString(str
);
1759 void DumpVkResolveModeFlagBits(Printer
&p
, std::string name
, VkResolveModeFlagBits value
) {
1760 auto strings
= VkResolveModeFlagBitsGetStrings(value
);
1761 if (strings
.size() > 0) {
1762 if (p
.Type() == OutputType::json
)
1763 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1765 p
.PrintKeyString(name
, strings
.at(0));
1769 std::vector
<const char *> VkSampleCountFlagBitsGetStrings(VkSampleCountFlagBits value
) {
1770 std::vector
<const char *> strings
;
1771 if (value
== 0) { strings
.push_back("None"); return strings
; }
1772 if (VK_SAMPLE_COUNT_1_BIT
& value
) strings
.push_back("SAMPLE_COUNT_1_BIT");
1773 if (VK_SAMPLE_COUNT_2_BIT
& value
) strings
.push_back("SAMPLE_COUNT_2_BIT");
1774 if (VK_SAMPLE_COUNT_4_BIT
& value
) strings
.push_back("SAMPLE_COUNT_4_BIT");
1775 if (VK_SAMPLE_COUNT_8_BIT
& value
) strings
.push_back("SAMPLE_COUNT_8_BIT");
1776 if (VK_SAMPLE_COUNT_16_BIT
& value
) strings
.push_back("SAMPLE_COUNT_16_BIT");
1777 if (VK_SAMPLE_COUNT_32_BIT
& value
) strings
.push_back("SAMPLE_COUNT_32_BIT");
1778 if (VK_SAMPLE_COUNT_64_BIT
& value
) strings
.push_back("SAMPLE_COUNT_64_BIT");
1781 void DumpVkSampleCountFlags(Printer
&p
, std::string name
, VkSampleCountFlags value
) {
1782 if (static_cast<VkSampleCountFlagBits
>(value
) == 0) {
1783 ArrayWrapper
arr(p
, name
, 0);
1784 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1785 p
.SetAsType().PrintString("None");
1788 auto strings
= VkSampleCountFlagBitsGetStrings(static_cast<VkSampleCountFlagBits
>(value
));
1789 ArrayWrapper
arr(p
, name
, strings
.size());
1790 for(auto& str
: strings
){
1791 if (p
.Type() == OutputType::json
)
1792 p
.SetAsType().PrintString(std::string("VK_") + str
);
1794 p
.SetAsType().PrintString(str
);
1797 void DumpVkSampleCountFlagBits(Printer
&p
, std::string name
, VkSampleCountFlagBits value
) {
1798 auto strings
= VkSampleCountFlagBitsGetStrings(value
);
1799 if (strings
.size() > 0) {
1800 if (p
.Type() == OutputType::json
)
1801 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1803 p
.PrintKeyString(name
, strings
.at(0));
1807 std::vector
<const char *> VkShaderStageFlagBitsGetStrings(VkShaderStageFlagBits value
) {
1808 std::vector
<const char *> strings
;
1809 if (value
== 0) { strings
.push_back("None"); return strings
; }
1810 if (VK_SHADER_STAGE_VERTEX_BIT
& value
) strings
.push_back("SHADER_STAGE_VERTEX_BIT");
1811 if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
& value
) strings
.push_back("SHADER_STAGE_TESSELLATION_CONTROL_BIT");
1812 if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
& value
) strings
.push_back("SHADER_STAGE_TESSELLATION_EVALUATION_BIT");
1813 if (VK_SHADER_STAGE_GEOMETRY_BIT
& value
) strings
.push_back("SHADER_STAGE_GEOMETRY_BIT");
1814 if (VK_SHADER_STAGE_FRAGMENT_BIT
& value
) strings
.push_back("SHADER_STAGE_FRAGMENT_BIT");
1815 if (VK_SHADER_STAGE_COMPUTE_BIT
& value
) strings
.push_back("SHADER_STAGE_COMPUTE_BIT");
1816 if (VK_SHADER_STAGE_RAYGEN_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_RAYGEN_BIT_KHR");
1817 if (VK_SHADER_STAGE_ANY_HIT_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_ANY_HIT_BIT_KHR");
1818 if (VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_CLOSEST_HIT_BIT_KHR");
1819 if (VK_SHADER_STAGE_MISS_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_MISS_BIT_KHR");
1820 if (VK_SHADER_STAGE_INTERSECTION_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_INTERSECTION_BIT_KHR");
1821 if (VK_SHADER_STAGE_CALLABLE_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_CALLABLE_BIT_KHR");
1822 if (VK_SHADER_STAGE_TASK_BIT_EXT
& value
) strings
.push_back("SHADER_STAGE_TASK_BIT_EXT");
1823 if (VK_SHADER_STAGE_MESH_BIT_EXT
& value
) strings
.push_back("SHADER_STAGE_MESH_BIT_EXT");
1824 if (VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
& value
) strings
.push_back("SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI");
1825 if (VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
& value
) strings
.push_back("SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI");
1828 void DumpVkShaderStageFlags(Printer
&p
, std::string name
, VkShaderStageFlags value
) {
1829 if (static_cast<VkShaderStageFlagBits
>(value
) == 0) {
1830 ArrayWrapper
arr(p
, name
, 0);
1831 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1832 p
.SetAsType().PrintString("None");
1835 auto strings
= VkShaderStageFlagBitsGetStrings(static_cast<VkShaderStageFlagBits
>(value
));
1836 ArrayWrapper
arr(p
, name
, strings
.size());
1837 for(auto& str
: strings
){
1838 if (p
.Type() == OutputType::json
)
1839 p
.SetAsType().PrintString(std::string("VK_") + str
);
1841 p
.SetAsType().PrintString(str
);
1844 void DumpVkShaderStageFlagBits(Printer
&p
, std::string name
, VkShaderStageFlagBits value
) {
1845 auto strings
= VkShaderStageFlagBitsGetStrings(value
);
1846 if (strings
.size() > 0) {
1847 if (p
.Type() == OutputType::json
)
1848 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1850 p
.PrintKeyString(name
, strings
.at(0));
1854 std::vector
<const char *> VkSubgroupFeatureFlagBitsGetStrings(VkSubgroupFeatureFlagBits value
) {
1855 std::vector
<const char *> strings
;
1856 if (value
== 0) { strings
.push_back("None"); return strings
; }
1857 if (VK_SUBGROUP_FEATURE_BASIC_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_BASIC_BIT");
1858 if (VK_SUBGROUP_FEATURE_VOTE_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_VOTE_BIT");
1859 if (VK_SUBGROUP_FEATURE_ARITHMETIC_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_ARITHMETIC_BIT");
1860 if (VK_SUBGROUP_FEATURE_BALLOT_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_BALLOT_BIT");
1861 if (VK_SUBGROUP_FEATURE_SHUFFLE_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_SHUFFLE_BIT");
1862 if (VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT");
1863 if (VK_SUBGROUP_FEATURE_CLUSTERED_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_CLUSTERED_BIT");
1864 if (VK_SUBGROUP_FEATURE_QUAD_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_QUAD_BIT");
1865 if (VK_SUBGROUP_FEATURE_ROTATE_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_ROTATE_BIT");
1866 if (VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT");
1867 if (VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
& value
) strings
.push_back("SUBGROUP_FEATURE_PARTITIONED_BIT_NV");
1870 void DumpVkSubgroupFeatureFlags(Printer
&p
, std::string name
, VkSubgroupFeatureFlags value
) {
1871 if (static_cast<VkSubgroupFeatureFlagBits
>(value
) == 0) {
1872 ArrayWrapper
arr(p
, name
, 0);
1873 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1874 p
.SetAsType().PrintString("None");
1877 auto strings
= VkSubgroupFeatureFlagBitsGetStrings(static_cast<VkSubgroupFeatureFlagBits
>(value
));
1878 ArrayWrapper
arr(p
, name
, strings
.size());
1879 for(auto& str
: strings
){
1880 if (p
.Type() == OutputType::json
)
1881 p
.SetAsType().PrintString(std::string("VK_") + str
);
1883 p
.SetAsType().PrintString(str
);
1886 void DumpVkSubgroupFeatureFlagBits(Printer
&p
, std::string name
, VkSubgroupFeatureFlagBits value
) {
1887 auto strings
= VkSubgroupFeatureFlagBitsGetStrings(value
);
1888 if (strings
.size() > 0) {
1889 if (p
.Type() == OutputType::json
)
1890 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1892 p
.PrintKeyString(name
, strings
.at(0));
1896 std::vector
<const char *> VkSurfaceCounterFlagBitsEXTGetStrings(VkSurfaceCounterFlagBitsEXT value
) {
1897 std::vector
<const char *> strings
;
1898 if (value
== 0) { strings
.push_back("None"); return strings
; }
1899 if (VK_SURFACE_COUNTER_VBLANK_BIT_EXT
& value
) strings
.push_back("SURFACE_COUNTER_VBLANK_BIT_EXT");
1902 void DumpVkSurfaceCounterFlagsEXT(Printer
&p
, std::string name
, VkSurfaceCounterFlagsEXT value
) {
1903 if (static_cast<VkSurfaceCounterFlagBitsEXT
>(value
) == 0) {
1904 ArrayWrapper
arr(p
, name
, 0);
1905 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1906 p
.SetAsType().PrintString("None");
1909 auto strings
= VkSurfaceCounterFlagBitsEXTGetStrings(static_cast<VkSurfaceCounterFlagBitsEXT
>(value
));
1910 ArrayWrapper
arr(p
, name
, strings
.size());
1911 for(auto& str
: strings
){
1912 if (p
.Type() == OutputType::json
)
1913 p
.SetAsType().PrintString(std::string("VK_") + str
);
1915 p
.SetAsType().PrintString(str
);
1918 void DumpVkSurfaceCounterFlagBitsEXT(Printer
&p
, std::string name
, VkSurfaceCounterFlagBitsEXT value
) {
1919 auto strings
= VkSurfaceCounterFlagBitsEXTGetStrings(value
);
1920 if (strings
.size() > 0) {
1921 if (p
.Type() == OutputType::json
)
1922 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1924 p
.PrintKeyString(name
, strings
.at(0));
1928 std::vector
<const char *> VkSurfaceTransformFlagBitsKHRGetStrings(VkSurfaceTransformFlagBitsKHR value
) {
1929 std::vector
<const char *> strings
;
1930 if (value
== 0) { strings
.push_back("None"); return strings
; }
1931 if (VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_IDENTITY_BIT_KHR");
1932 if (VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_ROTATE_90_BIT_KHR");
1933 if (VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_ROTATE_180_BIT_KHR");
1934 if (VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_ROTATE_270_BIT_KHR");
1935 if (VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR");
1936 if (VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR");
1937 if (VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR");
1938 if (VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR");
1939 if (VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_INHERIT_BIT_KHR");
1942 void DumpVkSurfaceTransformFlagsKHR(Printer
&p
, std::string name
, VkSurfaceTransformFlagsKHR value
) {
1943 if (static_cast<VkSurfaceTransformFlagBitsKHR
>(value
) == 0) {
1944 ArrayWrapper
arr(p
, name
, 0);
1945 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1946 p
.SetAsType().PrintString("None");
1949 auto strings
= VkSurfaceTransformFlagBitsKHRGetStrings(static_cast<VkSurfaceTransformFlagBitsKHR
>(value
));
1950 ArrayWrapper
arr(p
, name
, strings
.size());
1951 for(auto& str
: strings
){
1952 if (p
.Type() == OutputType::json
)
1953 p
.SetAsType().PrintString(std::string("VK_") + str
);
1955 p
.SetAsType().PrintString(str
);
1958 void DumpVkSurfaceTransformFlagBitsKHR(Printer
&p
, std::string name
, VkSurfaceTransformFlagBitsKHR value
) {
1959 auto strings
= VkSurfaceTransformFlagBitsKHRGetStrings(value
);
1960 if (strings
.size() > 0) {
1961 if (p
.Type() == OutputType::json
)
1962 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1964 p
.PrintKeyString(name
, strings
.at(0));
1968 std::vector
<const char *> VkToolPurposeFlagBitsGetStrings(VkToolPurposeFlagBits value
) {
1969 std::vector
<const char *> strings
;
1970 if (value
== 0) { strings
.push_back("None"); return strings
; }
1971 if (VK_TOOL_PURPOSE_VALIDATION_BIT
& value
) strings
.push_back("TOOL_PURPOSE_VALIDATION_BIT");
1972 if (VK_TOOL_PURPOSE_PROFILING_BIT
& value
) strings
.push_back("TOOL_PURPOSE_PROFILING_BIT");
1973 if (VK_TOOL_PURPOSE_TRACING_BIT
& value
) strings
.push_back("TOOL_PURPOSE_TRACING_BIT");
1974 if (VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT
& value
) strings
.push_back("TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT");
1975 if (VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT
& value
) strings
.push_back("TOOL_PURPOSE_MODIFYING_FEATURES_BIT");
1976 if (VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT
& value
) strings
.push_back("TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT");
1977 if (VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
& value
) strings
.push_back("TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT");
1980 void DumpVkToolPurposeFlags(Printer
&p
, std::string name
, VkToolPurposeFlags value
) {
1981 if (static_cast<VkToolPurposeFlagBits
>(value
) == 0) {
1982 ArrayWrapper
arr(p
, name
, 0);
1983 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1984 p
.SetAsType().PrintString("None");
1987 auto strings
= VkToolPurposeFlagBitsGetStrings(static_cast<VkToolPurposeFlagBits
>(value
));
1988 ArrayWrapper
arr(p
, name
, strings
.size());
1989 for(auto& str
: strings
){
1990 if (p
.Type() == OutputType::json
)
1991 p
.SetAsType().PrintString(std::string("VK_") + str
);
1993 p
.SetAsType().PrintString(str
);
1996 void DumpVkToolPurposeFlagBits(Printer
&p
, std::string name
, VkToolPurposeFlagBits value
) {
1997 auto strings
= VkToolPurposeFlagBitsGetStrings(value
);
1998 if (strings
.size() > 0) {
1999 if (p
.Type() == OutputType::json
)
2000 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2002 p
.PrintKeyString(name
, strings
.at(0));
2006 std::vector
<const char *> VkVideoCapabilityFlagBitsKHRGetStrings(VkVideoCapabilityFlagBitsKHR value
) {
2007 std::vector
<const char *> strings
;
2008 if (value
== 0) { strings
.push_back("None"); return strings
; }
2009 if (VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR
& value
) strings
.push_back("VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR");
2010 if (VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR
& value
) strings
.push_back("VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR");
2013 void DumpVkVideoCapabilityFlagsKHR(Printer
&p
, std::string name
, VkVideoCapabilityFlagsKHR value
) {
2014 if (static_cast<VkVideoCapabilityFlagBitsKHR
>(value
) == 0) {
2015 ArrayWrapper
arr(p
, name
, 0);
2016 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2017 p
.SetAsType().PrintString("None");
2020 auto strings
= VkVideoCapabilityFlagBitsKHRGetStrings(static_cast<VkVideoCapabilityFlagBitsKHR
>(value
));
2021 ArrayWrapper
arr(p
, name
, strings
.size());
2022 for(auto& str
: strings
){
2023 if (p
.Type() == OutputType::json
)
2024 p
.SetAsType().PrintString(std::string("VK_") + str
);
2026 p
.SetAsType().PrintString(str
);
2029 void DumpVkVideoCapabilityFlagBitsKHR(Printer
&p
, std::string name
, VkVideoCapabilityFlagBitsKHR value
) {
2030 auto strings
= VkVideoCapabilityFlagBitsKHRGetStrings(value
);
2031 if (strings
.size() > 0) {
2032 if (p
.Type() == OutputType::json
)
2033 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2035 p
.PrintKeyString(name
, strings
.at(0));
2039 std::vector
<const char *> VkVideoChromaSubsamplingFlagBitsKHRGetStrings(VkVideoChromaSubsamplingFlagBitsKHR value
) {
2040 std::vector
<const char *> strings
;
2041 if (value
== 0) { strings
.push_back("VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR"); return strings
; }
2042 if (VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
& value
) strings
.push_back("VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR");
2043 if (VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR
& value
) strings
.push_back("VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR");
2044 if (VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR
& value
) strings
.push_back("VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR");
2045 if (VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR
& value
) strings
.push_back("VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR");
2048 void DumpVkVideoChromaSubsamplingFlagsKHR(Printer
&p
, std::string name
, VkVideoChromaSubsamplingFlagsKHR value
) {
2049 if (static_cast<VkVideoChromaSubsamplingFlagBitsKHR
>(value
) == 0) {
2050 ArrayWrapper
arr(p
, name
, 0);
2051 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2052 p
.SetAsType().PrintString("None");
2055 auto strings
= VkVideoChromaSubsamplingFlagBitsKHRGetStrings(static_cast<VkVideoChromaSubsamplingFlagBitsKHR
>(value
));
2056 ArrayWrapper
arr(p
, name
, strings
.size());
2057 for(auto& str
: strings
){
2058 if (p
.Type() == OutputType::json
)
2059 p
.SetAsType().PrintString(std::string("VK_") + str
);
2061 p
.SetAsType().PrintString(str
);
2064 void DumpVkVideoChromaSubsamplingFlagBitsKHR(Printer
&p
, std::string name
, VkVideoChromaSubsamplingFlagBitsKHR value
) {
2065 auto strings
= VkVideoChromaSubsamplingFlagBitsKHRGetStrings(value
);
2066 if (strings
.size() > 0) {
2067 if (p
.Type() == OutputType::json
)
2068 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2070 p
.PrintKeyString(name
, strings
.at(0));
2074 std::vector
<const char *> VkVideoCodecOperationFlagBitsKHRGetStrings(VkVideoCodecOperationFlagBitsKHR value
) {
2075 std::vector
<const char *> strings
;
2076 if (value
== 0) { strings
.push_back("VIDEO_CODEC_OPERATION_NONE_KHR"); return strings
; }
2077 if (VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR");
2078 if (VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR");
2079 if (VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR");
2080 if (VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR");
2081 if (VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR");
2082 if (VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR");
2085 void DumpVkVideoCodecOperationFlagsKHR(Printer
&p
, std::string name
, VkVideoCodecOperationFlagsKHR value
) {
2086 if (static_cast<VkVideoCodecOperationFlagBitsKHR
>(value
) == 0) {
2087 ArrayWrapper
arr(p
, name
, 0);
2088 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2089 p
.SetAsType().PrintString("None");
2092 auto strings
= VkVideoCodecOperationFlagBitsKHRGetStrings(static_cast<VkVideoCodecOperationFlagBitsKHR
>(value
));
2093 ArrayWrapper
arr(p
, name
, strings
.size());
2094 for(auto& str
: strings
){
2095 if (p
.Type() == OutputType::json
)
2096 p
.SetAsType().PrintString(std::string("VK_") + str
);
2098 p
.SetAsType().PrintString(str
);
2101 void DumpVkVideoCodecOperationFlagBitsKHR(Printer
&p
, std::string name
, VkVideoCodecOperationFlagBitsKHR value
) {
2102 auto strings
= VkVideoCodecOperationFlagBitsKHRGetStrings(value
);
2103 if (strings
.size() > 0) {
2104 if (p
.Type() == OutputType::json
)
2105 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2107 p
.PrintKeyString(name
, strings
.at(0));
2111 std::vector
<const char *> VkVideoComponentBitDepthFlagBitsKHRGetStrings(VkVideoComponentBitDepthFlagBitsKHR value
) {
2112 std::vector
<const char *> strings
;
2113 if (value
== 0) { strings
.push_back("VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR"); return strings
; }
2114 if (VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR
& value
) strings
.push_back("VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR");
2115 if (VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR
& value
) strings
.push_back("VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR");
2116 if (VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR
& value
) strings
.push_back("VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR");
2119 void DumpVkVideoComponentBitDepthFlagsKHR(Printer
&p
, std::string name
, VkVideoComponentBitDepthFlagsKHR value
) {
2120 if (static_cast<VkVideoComponentBitDepthFlagBitsKHR
>(value
) == 0) {
2121 ArrayWrapper
arr(p
, name
, 0);
2122 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2123 p
.SetAsType().PrintString("None");
2126 auto strings
= VkVideoComponentBitDepthFlagBitsKHRGetStrings(static_cast<VkVideoComponentBitDepthFlagBitsKHR
>(value
));
2127 ArrayWrapper
arr(p
, name
, strings
.size());
2128 for(auto& str
: strings
){
2129 if (p
.Type() == OutputType::json
)
2130 p
.SetAsType().PrintString(std::string("VK_") + str
);
2132 p
.SetAsType().PrintString(str
);
2135 void DumpVkVideoComponentBitDepthFlagBitsKHR(Printer
&p
, std::string name
, VkVideoComponentBitDepthFlagBitsKHR value
) {
2136 auto strings
= VkVideoComponentBitDepthFlagBitsKHRGetStrings(value
);
2137 if (strings
.size() > 0) {
2138 if (p
.Type() == OutputType::json
)
2139 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2141 p
.PrintKeyString(name
, strings
.at(0));
2145 std::vector
<const char *> VkVideoDecodeCapabilityFlagBitsKHRGetStrings(VkVideoDecodeCapabilityFlagBitsKHR value
) {
2146 std::vector
<const char *> strings
;
2147 if (value
== 0) { strings
.push_back("None"); return strings
; }
2148 if (VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR
& value
) strings
.push_back("VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR");
2149 if (VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR
& value
) strings
.push_back("VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR");
2152 void DumpVkVideoDecodeCapabilityFlagsKHR(Printer
&p
, std::string name
, VkVideoDecodeCapabilityFlagsKHR value
) {
2153 if (static_cast<VkVideoDecodeCapabilityFlagBitsKHR
>(value
) == 0) {
2154 ArrayWrapper
arr(p
, name
, 0);
2155 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2156 p
.SetAsType().PrintString("None");
2159 auto strings
= VkVideoDecodeCapabilityFlagBitsKHRGetStrings(static_cast<VkVideoDecodeCapabilityFlagBitsKHR
>(value
));
2160 ArrayWrapper
arr(p
, name
, strings
.size());
2161 for(auto& str
: strings
){
2162 if (p
.Type() == OutputType::json
)
2163 p
.SetAsType().PrintString(std::string("VK_") + str
);
2165 p
.SetAsType().PrintString(str
);
2168 void DumpVkVideoDecodeCapabilityFlagBitsKHR(Printer
&p
, std::string name
, VkVideoDecodeCapabilityFlagBitsKHR value
) {
2169 auto strings
= VkVideoDecodeCapabilityFlagBitsKHRGetStrings(value
);
2170 if (strings
.size() > 0) {
2171 if (p
.Type() == OutputType::json
)
2172 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2174 p
.PrintKeyString(name
, strings
.at(0));
2178 std::vector
<const char *> VkVideoDecodeH264PictureLayoutFlagBitsKHRGetStrings(VkVideoDecodeH264PictureLayoutFlagBitsKHR value
) {
2179 std::vector
<const char *> strings
;
2180 if (value
== 0) { strings
.push_back("VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR"); return strings
; }
2181 if (VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR
& value
) strings
.push_back("VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR");
2182 if (VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR
& value
) strings
.push_back("VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR");
2185 void DumpVkVideoDecodeH264PictureLayoutFlagsKHR(Printer
&p
, std::string name
, VkVideoDecodeH264PictureLayoutFlagsKHR value
) {
2186 if (static_cast<VkVideoDecodeH264PictureLayoutFlagBitsKHR
>(value
) == 0) {
2187 ArrayWrapper
arr(p
, name
, 0);
2188 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2189 p
.SetAsType().PrintString("None");
2192 auto strings
= VkVideoDecodeH264PictureLayoutFlagBitsKHRGetStrings(static_cast<VkVideoDecodeH264PictureLayoutFlagBitsKHR
>(value
));
2193 ArrayWrapper
arr(p
, name
, strings
.size());
2194 for(auto& str
: strings
){
2195 if (p
.Type() == OutputType::json
)
2196 p
.SetAsType().PrintString(std::string("VK_") + str
);
2198 p
.SetAsType().PrintString(str
);
2201 void DumpVkVideoDecodeH264PictureLayoutFlagBitsKHR(Printer
&p
, std::string name
, VkVideoDecodeH264PictureLayoutFlagBitsKHR value
) {
2202 auto strings
= VkVideoDecodeH264PictureLayoutFlagBitsKHRGetStrings(value
);
2203 if (strings
.size() > 0) {
2204 if (p
.Type() == OutputType::json
)
2205 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2207 p
.PrintKeyString(name
, strings
.at(0));
2211 std::vector
<const char *> VkVideoDecodeUsageFlagBitsKHRGetStrings(VkVideoDecodeUsageFlagBitsKHR value
) {
2212 std::vector
<const char *> strings
;
2213 if (value
== 0) { strings
.push_back("VIDEO_DECODE_USAGE_DEFAULT_KHR"); return strings
; }
2214 if (VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR
& value
) strings
.push_back("VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR");
2215 if (VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR
& value
) strings
.push_back("VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR");
2216 if (VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR
& value
) strings
.push_back("VIDEO_DECODE_USAGE_STREAMING_BIT_KHR");
2219 void DumpVkVideoDecodeUsageFlagsKHR(Printer
&p
, std::string name
, VkVideoDecodeUsageFlagsKHR value
) {
2220 if (static_cast<VkVideoDecodeUsageFlagBitsKHR
>(value
) == 0) {
2221 ArrayWrapper
arr(p
, name
, 0);
2222 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2223 p
.SetAsType().PrintString("None");
2226 auto strings
= VkVideoDecodeUsageFlagBitsKHRGetStrings(static_cast<VkVideoDecodeUsageFlagBitsKHR
>(value
));
2227 ArrayWrapper
arr(p
, name
, strings
.size());
2228 for(auto& str
: strings
){
2229 if (p
.Type() == OutputType::json
)
2230 p
.SetAsType().PrintString(std::string("VK_") + str
);
2232 p
.SetAsType().PrintString(str
);
2235 void DumpVkVideoDecodeUsageFlagBitsKHR(Printer
&p
, std::string name
, VkVideoDecodeUsageFlagBitsKHR value
) {
2236 auto strings
= VkVideoDecodeUsageFlagBitsKHRGetStrings(value
);
2237 if (strings
.size() > 0) {
2238 if (p
.Type() == OutputType::json
)
2239 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2241 p
.PrintKeyString(name
, strings
.at(0));
2245 std::vector
<const char *> VkVideoEncodeAV1CapabilityFlagBitsKHRGetStrings(VkVideoEncodeAV1CapabilityFlagBitsKHR value
) {
2246 std::vector
<const char *> strings
;
2247 if (value
== 0) { strings
.push_back("None"); return strings
; }
2248 if (VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR");
2249 if (VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR");
2250 if (VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR");
2251 if (VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR");
2252 if (VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR");
2255 void DumpVkVideoEncodeAV1CapabilityFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeAV1CapabilityFlagsKHR value
) {
2256 if (static_cast<VkVideoEncodeAV1CapabilityFlagBitsKHR
>(value
) == 0) {
2257 ArrayWrapper
arr(p
, name
, 0);
2258 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2259 p
.SetAsType().PrintString("None");
2262 auto strings
= VkVideoEncodeAV1CapabilityFlagBitsKHRGetStrings(static_cast<VkVideoEncodeAV1CapabilityFlagBitsKHR
>(value
));
2263 ArrayWrapper
arr(p
, name
, strings
.size());
2264 for(auto& str
: strings
){
2265 if (p
.Type() == OutputType::json
)
2266 p
.SetAsType().PrintString(std::string("VK_") + str
);
2268 p
.SetAsType().PrintString(str
);
2271 void DumpVkVideoEncodeAV1CapabilityFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeAV1CapabilityFlagBitsKHR value
) {
2272 auto strings
= VkVideoEncodeAV1CapabilityFlagBitsKHRGetStrings(value
);
2273 if (strings
.size() > 0) {
2274 if (p
.Type() == OutputType::json
)
2275 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2277 p
.PrintKeyString(name
, strings
.at(0));
2281 std::vector
<const char *> VkVideoEncodeAV1StdFlagBitsKHRGetStrings(VkVideoEncodeAV1StdFlagBitsKHR value
) {
2282 std::vector
<const char *> strings
;
2283 if (value
== 0) { strings
.push_back("None"); return strings
; }
2284 if (VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR");
2285 if (VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR");
2286 if (VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR");
2287 if (VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR");
2290 void DumpVkVideoEncodeAV1StdFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeAV1StdFlagsKHR value
) {
2291 if (static_cast<VkVideoEncodeAV1StdFlagBitsKHR
>(value
) == 0) {
2292 ArrayWrapper
arr(p
, name
, 0);
2293 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2294 p
.SetAsType().PrintString("None");
2297 auto strings
= VkVideoEncodeAV1StdFlagBitsKHRGetStrings(static_cast<VkVideoEncodeAV1StdFlagBitsKHR
>(value
));
2298 ArrayWrapper
arr(p
, name
, strings
.size());
2299 for(auto& str
: strings
){
2300 if (p
.Type() == OutputType::json
)
2301 p
.SetAsType().PrintString(std::string("VK_") + str
);
2303 p
.SetAsType().PrintString(str
);
2306 void DumpVkVideoEncodeAV1StdFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeAV1StdFlagBitsKHR value
) {
2307 auto strings
= VkVideoEncodeAV1StdFlagBitsKHRGetStrings(value
);
2308 if (strings
.size() > 0) {
2309 if (p
.Type() == OutputType::json
)
2310 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2312 p
.PrintKeyString(name
, strings
.at(0));
2316 std::vector
<const char *> VkVideoEncodeAV1SuperblockSizeFlagBitsKHRGetStrings(VkVideoEncodeAV1SuperblockSizeFlagBitsKHR value
) {
2317 std::vector
<const char *> strings
;
2318 if (value
== 0) { strings
.push_back("None"); return strings
; }
2319 if (VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR");
2320 if (VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR");
2323 void DumpVkVideoEncodeAV1SuperblockSizeFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeAV1SuperblockSizeFlagsKHR value
) {
2324 if (static_cast<VkVideoEncodeAV1SuperblockSizeFlagBitsKHR
>(value
) == 0) {
2325 ArrayWrapper
arr(p
, name
, 0);
2326 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2327 p
.SetAsType().PrintString("None");
2330 auto strings
= VkVideoEncodeAV1SuperblockSizeFlagBitsKHRGetStrings(static_cast<VkVideoEncodeAV1SuperblockSizeFlagBitsKHR
>(value
));
2331 ArrayWrapper
arr(p
, name
, strings
.size());
2332 for(auto& str
: strings
){
2333 if (p
.Type() == OutputType::json
)
2334 p
.SetAsType().PrintString(std::string("VK_") + str
);
2336 p
.SetAsType().PrintString(str
);
2339 void DumpVkVideoEncodeAV1SuperblockSizeFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeAV1SuperblockSizeFlagBitsKHR value
) {
2340 auto strings
= VkVideoEncodeAV1SuperblockSizeFlagBitsKHRGetStrings(value
);
2341 if (strings
.size() > 0) {
2342 if (p
.Type() == OutputType::json
)
2343 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2345 p
.PrintKeyString(name
, strings
.at(0));
2349 std::vector
<const char *> VkVideoEncodeCapabilityFlagBitsKHRGetStrings(VkVideoEncodeCapabilityFlagBitsKHR value
) {
2350 std::vector
<const char *> strings
;
2351 if (value
== 0) { strings
.push_back("None"); return strings
; }
2352 if (VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR");
2353 if (VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR");
2354 if (VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR");
2355 if (VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR");
2358 void DumpVkVideoEncodeCapabilityFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeCapabilityFlagsKHR value
) {
2359 if (static_cast<VkVideoEncodeCapabilityFlagBitsKHR
>(value
) == 0) {
2360 ArrayWrapper
arr(p
, name
, 0);
2361 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2362 p
.SetAsType().PrintString("None");
2365 auto strings
= VkVideoEncodeCapabilityFlagBitsKHRGetStrings(static_cast<VkVideoEncodeCapabilityFlagBitsKHR
>(value
));
2366 ArrayWrapper
arr(p
, name
, strings
.size());
2367 for(auto& str
: strings
){
2368 if (p
.Type() == OutputType::json
)
2369 p
.SetAsType().PrintString(std::string("VK_") + str
);
2371 p
.SetAsType().PrintString(str
);
2374 void DumpVkVideoEncodeCapabilityFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeCapabilityFlagBitsKHR value
) {
2375 auto strings
= VkVideoEncodeCapabilityFlagBitsKHRGetStrings(value
);
2376 if (strings
.size() > 0) {
2377 if (p
.Type() == OutputType::json
)
2378 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2380 p
.PrintKeyString(name
, strings
.at(0));
2384 std::vector
<const char *> VkVideoEncodeContentFlagBitsKHRGetStrings(VkVideoEncodeContentFlagBitsKHR value
) {
2385 std::vector
<const char *> strings
;
2386 if (value
== 0) { strings
.push_back("VIDEO_ENCODE_CONTENT_DEFAULT_KHR"); return strings
; }
2387 if (VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR");
2388 if (VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR");
2389 if (VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR");
2392 void DumpVkVideoEncodeContentFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeContentFlagsKHR value
) {
2393 if (static_cast<VkVideoEncodeContentFlagBitsKHR
>(value
) == 0) {
2394 ArrayWrapper
arr(p
, name
, 0);
2395 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2396 p
.SetAsType().PrintString("None");
2399 auto strings
= VkVideoEncodeContentFlagBitsKHRGetStrings(static_cast<VkVideoEncodeContentFlagBitsKHR
>(value
));
2400 ArrayWrapper
arr(p
, name
, strings
.size());
2401 for(auto& str
: strings
){
2402 if (p
.Type() == OutputType::json
)
2403 p
.SetAsType().PrintString(std::string("VK_") + str
);
2405 p
.SetAsType().PrintString(str
);
2408 void DumpVkVideoEncodeContentFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeContentFlagBitsKHR value
) {
2409 auto strings
= VkVideoEncodeContentFlagBitsKHRGetStrings(value
);
2410 if (strings
.size() > 0) {
2411 if (p
.Type() == OutputType::json
)
2412 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2414 p
.PrintKeyString(name
, strings
.at(0));
2418 std::vector
<const char *> VkVideoEncodeFeedbackFlagBitsKHRGetStrings(VkVideoEncodeFeedbackFlagBitsKHR value
) {
2419 std::vector
<const char *> strings
;
2420 if (value
== 0) { strings
.push_back("None"); return strings
; }
2421 if (VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR");
2422 if (VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR");
2423 if (VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR");
2426 void DumpVkVideoEncodeFeedbackFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeFeedbackFlagsKHR value
) {
2427 if (static_cast<VkVideoEncodeFeedbackFlagBitsKHR
>(value
) == 0) {
2428 ArrayWrapper
arr(p
, name
, 0);
2429 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2430 p
.SetAsType().PrintString("None");
2433 auto strings
= VkVideoEncodeFeedbackFlagBitsKHRGetStrings(static_cast<VkVideoEncodeFeedbackFlagBitsKHR
>(value
));
2434 ArrayWrapper
arr(p
, name
, strings
.size());
2435 for(auto& str
: strings
){
2436 if (p
.Type() == OutputType::json
)
2437 p
.SetAsType().PrintString(std::string("VK_") + str
);
2439 p
.SetAsType().PrintString(str
);
2442 void DumpVkVideoEncodeFeedbackFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeFeedbackFlagBitsKHR value
) {
2443 auto strings
= VkVideoEncodeFeedbackFlagBitsKHRGetStrings(value
);
2444 if (strings
.size() > 0) {
2445 if (p
.Type() == OutputType::json
)
2446 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2448 p
.PrintKeyString(name
, strings
.at(0));
2452 std::vector
<const char *> VkVideoEncodeH264CapabilityFlagBitsKHRGetStrings(VkVideoEncodeH264CapabilityFlagBitsKHR value
) {
2453 std::vector
<const char *> strings
;
2454 if (value
== 0) { strings
.push_back("None"); return strings
; }
2455 if (VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR");
2456 if (VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR");
2457 if (VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR");
2458 if (VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR");
2459 if (VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR");
2460 if (VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR");
2461 if (VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR");
2462 if (VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR");
2463 if (VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR");
2464 if (VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR");
2467 void DumpVkVideoEncodeH264CapabilityFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeH264CapabilityFlagsKHR value
) {
2468 if (static_cast<VkVideoEncodeH264CapabilityFlagBitsKHR
>(value
) == 0) {
2469 ArrayWrapper
arr(p
, name
, 0);
2470 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2471 p
.SetAsType().PrintString("None");
2474 auto strings
= VkVideoEncodeH264CapabilityFlagBitsKHRGetStrings(static_cast<VkVideoEncodeH264CapabilityFlagBitsKHR
>(value
));
2475 ArrayWrapper
arr(p
, name
, strings
.size());
2476 for(auto& str
: strings
){
2477 if (p
.Type() == OutputType::json
)
2478 p
.SetAsType().PrintString(std::string("VK_") + str
);
2480 p
.SetAsType().PrintString(str
);
2483 void DumpVkVideoEncodeH264CapabilityFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeH264CapabilityFlagBitsKHR value
) {
2484 auto strings
= VkVideoEncodeH264CapabilityFlagBitsKHRGetStrings(value
);
2485 if (strings
.size() > 0) {
2486 if (p
.Type() == OutputType::json
)
2487 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2489 p
.PrintKeyString(name
, strings
.at(0));
2493 std::vector
<const char *> VkVideoEncodeH264StdFlagBitsKHRGetStrings(VkVideoEncodeH264StdFlagBitsKHR value
) {
2494 std::vector
<const char *> strings
;
2495 if (value
== 0) { strings
.push_back("None"); return strings
; }
2496 if (VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR");
2497 if (VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR");
2498 if (VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR");
2499 if (VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR");
2500 if (VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR");
2501 if (VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR");
2502 if (VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR");
2503 if (VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR");
2504 if (VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR");
2505 if (VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR");
2506 if (VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR");
2507 if (VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR");
2508 if (VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR");
2509 if (VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR");
2510 if (VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR");
2511 if (VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR");
2512 if (VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR");
2513 if (VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR");
2514 if (VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR");
2515 if (VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR");
2518 void DumpVkVideoEncodeH264StdFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeH264StdFlagsKHR value
) {
2519 if (static_cast<VkVideoEncodeH264StdFlagBitsKHR
>(value
) == 0) {
2520 ArrayWrapper
arr(p
, name
, 0);
2521 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2522 p
.SetAsType().PrintString("None");
2525 auto strings
= VkVideoEncodeH264StdFlagBitsKHRGetStrings(static_cast<VkVideoEncodeH264StdFlagBitsKHR
>(value
));
2526 ArrayWrapper
arr(p
, name
, strings
.size());
2527 for(auto& str
: strings
){
2528 if (p
.Type() == OutputType::json
)
2529 p
.SetAsType().PrintString(std::string("VK_") + str
);
2531 p
.SetAsType().PrintString(str
);
2534 void DumpVkVideoEncodeH264StdFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeH264StdFlagBitsKHR value
) {
2535 auto strings
= VkVideoEncodeH264StdFlagBitsKHRGetStrings(value
);
2536 if (strings
.size() > 0) {
2537 if (p
.Type() == OutputType::json
)
2538 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2540 p
.PrintKeyString(name
, strings
.at(0));
2544 std::vector
<const char *> VkVideoEncodeH265CapabilityFlagBitsKHRGetStrings(VkVideoEncodeH265CapabilityFlagBitsKHR value
) {
2545 std::vector
<const char *> strings
;
2546 if (value
== 0) { strings
.push_back("None"); return strings
; }
2547 if (VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR");
2548 if (VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR");
2549 if (VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR");
2550 if (VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR");
2551 if (VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR");
2552 if (VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR");
2553 if (VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR");
2554 if (VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR");
2555 if (VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR");
2556 if (VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR");
2557 if (VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR");
2560 void DumpVkVideoEncodeH265CapabilityFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeH265CapabilityFlagsKHR value
) {
2561 if (static_cast<VkVideoEncodeH265CapabilityFlagBitsKHR
>(value
) == 0) {
2562 ArrayWrapper
arr(p
, name
, 0);
2563 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2564 p
.SetAsType().PrintString("None");
2567 auto strings
= VkVideoEncodeH265CapabilityFlagBitsKHRGetStrings(static_cast<VkVideoEncodeH265CapabilityFlagBitsKHR
>(value
));
2568 ArrayWrapper
arr(p
, name
, strings
.size());
2569 for(auto& str
: strings
){
2570 if (p
.Type() == OutputType::json
)
2571 p
.SetAsType().PrintString(std::string("VK_") + str
);
2573 p
.SetAsType().PrintString(str
);
2576 void DumpVkVideoEncodeH265CapabilityFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeH265CapabilityFlagBitsKHR value
) {
2577 auto strings
= VkVideoEncodeH265CapabilityFlagBitsKHRGetStrings(value
);
2578 if (strings
.size() > 0) {
2579 if (p
.Type() == OutputType::json
)
2580 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2582 p
.PrintKeyString(name
, strings
.at(0));
2586 std::vector
<const char *> VkVideoEncodeH265CtbSizeFlagBitsKHRGetStrings(VkVideoEncodeH265CtbSizeFlagBitsKHR value
) {
2587 std::vector
<const char *> strings
;
2588 if (value
== 0) { strings
.push_back("None"); return strings
; }
2589 if (VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR");
2590 if (VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR");
2591 if (VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR");
2594 void DumpVkVideoEncodeH265CtbSizeFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeH265CtbSizeFlagsKHR value
) {
2595 if (static_cast<VkVideoEncodeH265CtbSizeFlagBitsKHR
>(value
) == 0) {
2596 ArrayWrapper
arr(p
, name
, 0);
2597 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2598 p
.SetAsType().PrintString("None");
2601 auto strings
= VkVideoEncodeH265CtbSizeFlagBitsKHRGetStrings(static_cast<VkVideoEncodeH265CtbSizeFlagBitsKHR
>(value
));
2602 ArrayWrapper
arr(p
, name
, strings
.size());
2603 for(auto& str
: strings
){
2604 if (p
.Type() == OutputType::json
)
2605 p
.SetAsType().PrintString(std::string("VK_") + str
);
2607 p
.SetAsType().PrintString(str
);
2610 void DumpVkVideoEncodeH265CtbSizeFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeH265CtbSizeFlagBitsKHR value
) {
2611 auto strings
= VkVideoEncodeH265CtbSizeFlagBitsKHRGetStrings(value
);
2612 if (strings
.size() > 0) {
2613 if (p
.Type() == OutputType::json
)
2614 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2616 p
.PrintKeyString(name
, strings
.at(0));
2620 std::vector
<const char *> VkVideoEncodeH265StdFlagBitsKHRGetStrings(VkVideoEncodeH265StdFlagBitsKHR value
) {
2621 std::vector
<const char *> strings
;
2622 if (value
== 0) { strings
.push_back("None"); return strings
; }
2623 if (VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR");
2624 if (VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR");
2625 if (VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR");
2626 if (VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR");
2627 if (VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR");
2628 if (VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR");
2629 if (VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR");
2630 if (VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR");
2631 if (VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR");
2632 if (VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR");
2633 if (VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR");
2634 if (VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR");
2635 if (VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR");
2636 if (VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR");
2637 if (VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR");
2638 if (VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR");
2639 if (VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR");
2640 if (VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR");
2641 if (VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR");
2642 if (VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR");
2643 if (VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR");
2646 void DumpVkVideoEncodeH265StdFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeH265StdFlagsKHR value
) {
2647 if (static_cast<VkVideoEncodeH265StdFlagBitsKHR
>(value
) == 0) {
2648 ArrayWrapper
arr(p
, name
, 0);
2649 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2650 p
.SetAsType().PrintString("None");
2653 auto strings
= VkVideoEncodeH265StdFlagBitsKHRGetStrings(static_cast<VkVideoEncodeH265StdFlagBitsKHR
>(value
));
2654 ArrayWrapper
arr(p
, name
, strings
.size());
2655 for(auto& str
: strings
){
2656 if (p
.Type() == OutputType::json
)
2657 p
.SetAsType().PrintString(std::string("VK_") + str
);
2659 p
.SetAsType().PrintString(str
);
2662 void DumpVkVideoEncodeH265StdFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeH265StdFlagBitsKHR value
) {
2663 auto strings
= VkVideoEncodeH265StdFlagBitsKHRGetStrings(value
);
2664 if (strings
.size() > 0) {
2665 if (p
.Type() == OutputType::json
)
2666 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2668 p
.PrintKeyString(name
, strings
.at(0));
2672 std::vector
<const char *> VkVideoEncodeH265TransformBlockSizeFlagBitsKHRGetStrings(VkVideoEncodeH265TransformBlockSizeFlagBitsKHR value
) {
2673 std::vector
<const char *> strings
;
2674 if (value
== 0) { strings
.push_back("None"); return strings
; }
2675 if (VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR");
2676 if (VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR");
2677 if (VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR");
2678 if (VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR");
2681 void DumpVkVideoEncodeH265TransformBlockSizeFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeH265TransformBlockSizeFlagsKHR value
) {
2682 if (static_cast<VkVideoEncodeH265TransformBlockSizeFlagBitsKHR
>(value
) == 0) {
2683 ArrayWrapper
arr(p
, name
, 0);
2684 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2685 p
.SetAsType().PrintString("None");
2688 auto strings
= VkVideoEncodeH265TransformBlockSizeFlagBitsKHRGetStrings(static_cast<VkVideoEncodeH265TransformBlockSizeFlagBitsKHR
>(value
));
2689 ArrayWrapper
arr(p
, name
, strings
.size());
2690 for(auto& str
: strings
){
2691 if (p
.Type() == OutputType::json
)
2692 p
.SetAsType().PrintString(std::string("VK_") + str
);
2694 p
.SetAsType().PrintString(str
);
2697 void DumpVkVideoEncodeH265TransformBlockSizeFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeH265TransformBlockSizeFlagBitsKHR value
) {
2698 auto strings
= VkVideoEncodeH265TransformBlockSizeFlagBitsKHRGetStrings(value
);
2699 if (strings
.size() > 0) {
2700 if (p
.Type() == OutputType::json
)
2701 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2703 p
.PrintKeyString(name
, strings
.at(0));
2707 std::vector
<const char *> VkVideoEncodeRateControlModeFlagBitsKHRGetStrings(VkVideoEncodeRateControlModeFlagBitsKHR value
) {
2708 std::vector
<const char *> strings
;
2709 if (value
== 0) { strings
.push_back("VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR"); return strings
; }
2710 if (VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR");
2711 if (VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR");
2712 if (VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR");
2715 void DumpVkVideoEncodeRateControlModeFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeRateControlModeFlagsKHR value
) {
2716 if (static_cast<VkVideoEncodeRateControlModeFlagBitsKHR
>(value
) == 0) {
2717 ArrayWrapper
arr(p
, name
, 0);
2718 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2719 p
.SetAsType().PrintString("None");
2722 auto strings
= VkVideoEncodeRateControlModeFlagBitsKHRGetStrings(static_cast<VkVideoEncodeRateControlModeFlagBitsKHR
>(value
));
2723 ArrayWrapper
arr(p
, name
, strings
.size());
2724 for(auto& str
: strings
){
2725 if (p
.Type() == OutputType::json
)
2726 p
.SetAsType().PrintString(std::string("VK_") + str
);
2728 p
.SetAsType().PrintString(str
);
2731 void DumpVkVideoEncodeRateControlModeFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeRateControlModeFlagBitsKHR value
) {
2732 auto strings
= VkVideoEncodeRateControlModeFlagBitsKHRGetStrings(value
);
2733 if (strings
.size() > 0) {
2734 if (p
.Type() == OutputType::json
)
2735 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2737 p
.PrintKeyString(name
, strings
.at(0));
2741 std::vector
<const char *> VkVideoEncodeUsageFlagBitsKHRGetStrings(VkVideoEncodeUsageFlagBitsKHR value
) {
2742 std::vector
<const char *> strings
;
2743 if (value
== 0) { strings
.push_back("VIDEO_ENCODE_USAGE_DEFAULT_KHR"); return strings
; }
2744 if (VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR");
2745 if (VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR");
2746 if (VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR");
2747 if (VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR
& value
) strings
.push_back("VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR");
2750 void DumpVkVideoEncodeUsageFlagsKHR(Printer
&p
, std::string name
, VkVideoEncodeUsageFlagsKHR value
) {
2751 if (static_cast<VkVideoEncodeUsageFlagBitsKHR
>(value
) == 0) {
2752 ArrayWrapper
arr(p
, name
, 0);
2753 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
2754 p
.SetAsType().PrintString("None");
2757 auto strings
= VkVideoEncodeUsageFlagBitsKHRGetStrings(static_cast<VkVideoEncodeUsageFlagBitsKHR
>(value
));
2758 ArrayWrapper
arr(p
, name
, strings
.size());
2759 for(auto& str
: strings
){
2760 if (p
.Type() == OutputType::json
)
2761 p
.SetAsType().PrintString(std::string("VK_") + str
);
2763 p
.SetAsType().PrintString(str
);
2766 void DumpVkVideoEncodeUsageFlagBitsKHR(Printer
&p
, std::string name
, VkVideoEncodeUsageFlagBitsKHR value
) {
2767 auto strings
= VkVideoEncodeUsageFlagBitsKHRGetStrings(value
);
2768 if (strings
.size() > 0) {
2769 if (p
.Type() == OutputType::json
)
2770 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
2772 p
.PrintKeyString(name
, strings
.at(0));
2776 void DumpVkComponentMapping(Printer
&p
, std::string name
, const VkComponentMapping
&obj
) {
2777 ObjectWrapper object
{p
, name
};
2778 DumpVkComponentSwizzle(p
, "r", obj
.r
);
2779 DumpVkComponentSwizzle(p
, "g", obj
.g
);
2780 DumpVkComponentSwizzle(p
, "b", obj
.b
);
2781 DumpVkComponentSwizzle(p
, "a", obj
.a
);
2783 void DumpVkConformanceVersion(Printer
&p
, std::string name
, const VkConformanceVersion
&obj
) {
2784 ObjectWrapper object
{p
, name
};
2785 p
.SetMinKeyWidth(8);
2786 p
.PrintKeyValue("major", static_cast<uint32_t>(obj
.major
));
2787 p
.PrintKeyValue("minor", static_cast<uint32_t>(obj
.minor
));
2788 p
.PrintKeyValue("subminor", static_cast<uint32_t>(obj
.subminor
));
2789 p
.PrintKeyValue("patch", static_cast<uint32_t>(obj
.patch
));
2791 void DumpVkDrmFormatModifierProperties2EXT(Printer
&p
, std::string name
, const VkDrmFormatModifierProperties2EXT
&obj
) {
2792 ObjectWrapper object
{p
, name
};
2793 p
.SetMinKeyWidth(27);
2794 p
.PrintKeyValue("drmFormatModifier", obj
.drmFormatModifier
);
2795 p
.PrintKeyValue("drmFormatModifierPlaneCount", obj
.drmFormatModifierPlaneCount
);
2797 DumpVkFormatFeatureFlags2(p
, "drmFormatModifierTilingFeatures", obj
.drmFormatModifierTilingFeatures
);
2799 void DumpVkExtensionProperties(Printer
&p
, std::string name
, const VkExtensionProperties
&obj
) {
2800 ObjectWrapper object
{p
, name
};
2801 p
.SetMinKeyWidth(18);
2802 p
.PrintKeyString("extensionName", obj
.extensionName
);
2803 p
.PrintKeyValue("specVersion", obj
.specVersion
);
2805 void DumpVkExtent2D(Printer
&p
, std::string name
, const VkExtent2D
&obj
) {
2806 ObjectWrapper object
{p
, name
};
2807 p
.SetMinKeyWidth(6);
2808 p
.PrintKeyValue("width", obj
.width
);
2809 p
.PrintKeyValue("height", obj
.height
);
2811 void DumpVkExtent3D(Printer
&p
, std::string name
, const VkExtent3D
&obj
) {
2812 ObjectWrapper object
{p
, name
};
2813 p
.SetMinKeyWidth(6);
2814 p
.PrintKeyValue("width", obj
.width
);
2815 p
.PrintKeyValue("height", obj
.height
);
2816 p
.PrintKeyValue("depth", obj
.depth
);
2818 void DumpVkFormatProperties(Printer
&p
, std::string name
, const VkFormatProperties
&obj
) {
2819 ObjectWrapper object
{p
, name
};
2821 DumpVkFormatFeatureFlags(p
, "linearTilingFeatures", obj
.linearTilingFeatures
);
2823 DumpVkFormatFeatureFlags(p
, "optimalTilingFeatures", obj
.optimalTilingFeatures
);
2825 DumpVkFormatFeatureFlags(p
, "bufferFeatures", obj
.bufferFeatures
);
2827 void DumpVkFormatProperties3(Printer
&p
, std::string name
, const VkFormatProperties3
&obj
) {
2828 ObjectWrapper object
{p
, name
};
2830 DumpVkFormatFeatureFlags2(p
, "linearTilingFeatures", obj
.linearTilingFeatures
);
2832 DumpVkFormatFeatureFlags2(p
, "optimalTilingFeatures", obj
.optimalTilingFeatures
);
2834 DumpVkFormatFeatureFlags2(p
, "bufferFeatures", obj
.bufferFeatures
);
2836 void DumpVkLayerProperties(Printer
&p
, std::string name
, const VkLayerProperties
&obj
) {
2837 ObjectWrapper object
{p
, name
};
2838 p
.SetMinKeyWidth(21);
2839 p
.PrintKeyString("layerName", obj
.layerName
);
2840 p
.PrintKeyValue("specVersion", obj
.specVersion
);
2841 p
.PrintKeyValue("implementationVersion", obj
.implementationVersion
);
2842 p
.PrintKeyString("description", obj
.description
);
2844 void DumpVkOffset2D(Printer
&p
, std::string name
, const VkOffset2D
&obj
) {
2845 ObjectWrapper object
{p
, name
};
2846 p
.SetMinKeyWidth(1);
2847 p
.PrintKeyValue("x", obj
.x
);
2848 p
.PrintKeyValue("y", obj
.y
);
2850 void DumpVkPhysicalDevice16BitStorageFeatures(Printer
&p
, std::string name
, const VkPhysicalDevice16BitStorageFeatures
&obj
) {
2851 ObjectWrapper object
{p
, name
};
2852 p
.SetMinKeyWidth(34);
2853 p
.PrintKeyBool("storageBuffer16BitAccess", static_cast<bool>(obj
.storageBuffer16BitAccess
));
2854 p
.PrintKeyBool("uniformAndStorageBuffer16BitAccess", static_cast<bool>(obj
.uniformAndStorageBuffer16BitAccess
));
2855 p
.PrintKeyBool("storagePushConstant16", static_cast<bool>(obj
.storagePushConstant16
));
2856 p
.PrintKeyBool("storageInputOutput16", static_cast<bool>(obj
.storageInputOutput16
));
2858 void DumpVkPhysicalDevice4444FormatsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevice4444FormatsFeaturesEXT
&obj
) {
2859 ObjectWrapper object
{p
, name
};
2860 p
.SetMinKeyWidth(14);
2861 p
.PrintKeyBool("formatA4R4G4B4", static_cast<bool>(obj
.formatA4R4G4B4
));
2862 p
.PrintKeyBool("formatA4B4G4R4", static_cast<bool>(obj
.formatA4B4G4R4
));
2864 void DumpVkPhysicalDevice8BitStorageFeatures(Printer
&p
, std::string name
, const VkPhysicalDevice8BitStorageFeatures
&obj
) {
2865 ObjectWrapper object
{p
, name
};
2866 p
.SetMinKeyWidth(33);
2867 p
.PrintKeyBool("storageBuffer8BitAccess", static_cast<bool>(obj
.storageBuffer8BitAccess
));
2868 p
.PrintKeyBool("uniformAndStorageBuffer8BitAccess", static_cast<bool>(obj
.uniformAndStorageBuffer8BitAccess
));
2869 p
.PrintKeyBool("storagePushConstant8", static_cast<bool>(obj
.storagePushConstant8
));
2871 void DumpVkPhysicalDeviceASTCDecodeFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceASTCDecodeFeaturesEXT
&obj
) {
2872 ObjectWrapper object
{p
, name
};
2873 p
.SetMinKeyWidth(24);
2874 p
.PrintKeyBool("decodeModeSharedExponent", static_cast<bool>(obj
.decodeModeSharedExponent
));
2876 void DumpVkPhysicalDeviceAccelerationStructureFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceAccelerationStructureFeaturesKHR
&obj
) {
2877 ObjectWrapper object
{p
, name
};
2878 p
.SetMinKeyWidth(53);
2879 p
.PrintKeyBool("accelerationStructure", static_cast<bool>(obj
.accelerationStructure
));
2880 p
.PrintKeyBool("accelerationStructureCaptureReplay", static_cast<bool>(obj
.accelerationStructureCaptureReplay
));
2881 p
.PrintKeyBool("accelerationStructureIndirectBuild", static_cast<bool>(obj
.accelerationStructureIndirectBuild
));
2882 p
.PrintKeyBool("accelerationStructureHostCommands", static_cast<bool>(obj
.accelerationStructureHostCommands
));
2883 p
.PrintKeyBool("descriptorBindingAccelerationStructureUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingAccelerationStructureUpdateAfterBind
));
2885 void DumpVkPhysicalDeviceAccelerationStructurePropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceAccelerationStructurePropertiesKHR
&obj
) {
2886 ObjectWrapper object
{p
, name
};
2887 p
.SetMinKeyWidth(58);
2888 p
.PrintKeyValue("maxGeometryCount", obj
.maxGeometryCount
);
2889 p
.PrintKeyValue("maxInstanceCount", obj
.maxInstanceCount
);
2890 p
.PrintKeyValue("maxPrimitiveCount", obj
.maxPrimitiveCount
);
2891 p
.PrintKeyValue("maxPerStageDescriptorAccelerationStructures", obj
.maxPerStageDescriptorAccelerationStructures
);
2892 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindAccelerationStructures", obj
.maxPerStageDescriptorUpdateAfterBindAccelerationStructures
);
2893 p
.PrintKeyValue("maxDescriptorSetAccelerationStructures", obj
.maxDescriptorSetAccelerationStructures
);
2894 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindAccelerationStructures", obj
.maxDescriptorSetUpdateAfterBindAccelerationStructures
);
2895 p
.PrintKeyValue("minAccelerationStructureScratchOffsetAlignment", obj
.minAccelerationStructureScratchOffsetAlignment
);
2897 void DumpVkPhysicalDeviceAddressBindingReportFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceAddressBindingReportFeaturesEXT
&obj
) {
2898 ObjectWrapper object
{p
, name
};
2899 p
.SetMinKeyWidth(20);
2900 p
.PrintKeyBool("reportAddressBinding", static_cast<bool>(obj
.reportAddressBinding
));
2902 void DumpVkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
&obj
) {
2903 ObjectWrapper object
{p
, name
};
2904 p
.SetMinKeyWidth(34);
2905 p
.PrintKeyBool("attachmentFeedbackLoopDynamicState", static_cast<bool>(obj
.attachmentFeedbackLoopDynamicState
));
2907 void DumpVkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
&obj
) {
2908 ObjectWrapper object
{p
, name
};
2909 p
.SetMinKeyWidth(28);
2910 p
.PrintKeyBool("attachmentFeedbackLoopLayout", static_cast<bool>(obj
.attachmentFeedbackLoopLayout
));
2912 void DumpVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
&obj
) {
2913 ObjectWrapper object
{p
, name
};
2914 p
.SetMinKeyWidth(31);
2915 p
.PrintKeyBool("advancedBlendCoherentOperations", static_cast<bool>(obj
.advancedBlendCoherentOperations
));
2917 void DumpVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
&obj
) {
2918 ObjectWrapper object
{p
, name
};
2919 p
.SetMinKeyWidth(37);
2920 p
.PrintKeyValue("advancedBlendMaxColorAttachments", obj
.advancedBlendMaxColorAttachments
);
2921 p
.PrintKeyBool("advancedBlendIndependentBlend", static_cast<bool>(obj
.advancedBlendIndependentBlend
));
2922 p
.PrintKeyBool("advancedBlendNonPremultipliedSrcColor", static_cast<bool>(obj
.advancedBlendNonPremultipliedSrcColor
));
2923 p
.PrintKeyBool("advancedBlendNonPremultipliedDstColor", static_cast<bool>(obj
.advancedBlendNonPremultipliedDstColor
));
2924 p
.PrintKeyBool("advancedBlendCorrelatedOverlap", static_cast<bool>(obj
.advancedBlendCorrelatedOverlap
));
2925 p
.PrintKeyBool("advancedBlendAllOperations", static_cast<bool>(obj
.advancedBlendAllOperations
));
2927 void DumpVkPhysicalDeviceBorderColorSwizzleFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
&obj
) {
2928 ObjectWrapper object
{p
, name
};
2929 p
.SetMinKeyWidth(27);
2930 p
.PrintKeyBool("borderColorSwizzle", static_cast<bool>(obj
.borderColorSwizzle
));
2931 p
.PrintKeyBool("borderColorSwizzleFromImage", static_cast<bool>(obj
.borderColorSwizzleFromImage
));
2933 void DumpVkPhysicalDeviceBufferDeviceAddressFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceBufferDeviceAddressFeatures
&obj
) {
2934 ObjectWrapper object
{p
, name
};
2935 p
.SetMinKeyWidth(32);
2936 p
.PrintKeyBool("bufferDeviceAddress", static_cast<bool>(obj
.bufferDeviceAddress
));
2937 p
.PrintKeyBool("bufferDeviceAddressCaptureReplay", static_cast<bool>(obj
.bufferDeviceAddressCaptureReplay
));
2938 p
.PrintKeyBool("bufferDeviceAddressMultiDevice", static_cast<bool>(obj
.bufferDeviceAddressMultiDevice
));
2940 void DumpVkPhysicalDeviceBufferDeviceAddressFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
&obj
) {
2941 ObjectWrapper object
{p
, name
};
2942 p
.SetMinKeyWidth(32);
2943 p
.PrintKeyBool("bufferDeviceAddress", static_cast<bool>(obj
.bufferDeviceAddress
));
2944 p
.PrintKeyBool("bufferDeviceAddressCaptureReplay", static_cast<bool>(obj
.bufferDeviceAddressCaptureReplay
));
2945 p
.PrintKeyBool("bufferDeviceAddressMultiDevice", static_cast<bool>(obj
.bufferDeviceAddressMultiDevice
));
2947 void DumpVkPhysicalDeviceColorWriteEnableFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceColorWriteEnableFeaturesEXT
&obj
) {
2948 ObjectWrapper object
{p
, name
};
2949 p
.SetMinKeyWidth(16);
2950 p
.PrintKeyBool("colorWriteEnable", static_cast<bool>(obj
.colorWriteEnable
));
2952 void DumpVkPhysicalDeviceComputeShaderDerivativesFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
&obj
) {
2953 ObjectWrapper object
{p
, name
};
2954 p
.SetMinKeyWidth(28);
2955 p
.PrintKeyBool("computeDerivativeGroupQuads", static_cast<bool>(obj
.computeDerivativeGroupQuads
));
2956 p
.PrintKeyBool("computeDerivativeGroupLinear", static_cast<bool>(obj
.computeDerivativeGroupLinear
));
2958 void DumpVkPhysicalDeviceComputeShaderDerivativesPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
&obj
) {
2959 ObjectWrapper object
{p
, name
};
2960 p
.SetMinKeyWidth(28);
2961 p
.PrintKeyBool("meshAndTaskShaderDerivatives", static_cast<bool>(obj
.meshAndTaskShaderDerivatives
));
2963 void DumpVkPhysicalDeviceConditionalRenderingFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceConditionalRenderingFeaturesEXT
&obj
) {
2964 ObjectWrapper object
{p
, name
};
2965 p
.SetMinKeyWidth(29);
2966 p
.PrintKeyBool("conditionalRendering", static_cast<bool>(obj
.conditionalRendering
));
2967 p
.PrintKeyBool("inheritedConditionalRendering", static_cast<bool>(obj
.inheritedConditionalRendering
));
2969 void DumpVkPhysicalDeviceConservativeRasterizationPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT
&obj
) {
2970 ObjectWrapper object
{p
, name
};
2971 p
.SetMinKeyWidth(43);
2972 p
.PrintKeyValue("primitiveOverestimationSize", obj
.primitiveOverestimationSize
);
2973 p
.PrintKeyValue("maxExtraPrimitiveOverestimationSize", obj
.maxExtraPrimitiveOverestimationSize
);
2974 p
.PrintKeyValue("extraPrimitiveOverestimationSizeGranularity", obj
.extraPrimitiveOverestimationSizeGranularity
);
2975 p
.PrintKeyBool("primitiveUnderestimation", static_cast<bool>(obj
.primitiveUnderestimation
));
2976 p
.PrintKeyBool("conservativePointAndLineRasterization", static_cast<bool>(obj
.conservativePointAndLineRasterization
));
2977 p
.PrintKeyBool("degenerateTrianglesRasterized", static_cast<bool>(obj
.degenerateTrianglesRasterized
));
2978 p
.PrintKeyBool("degenerateLinesRasterized", static_cast<bool>(obj
.degenerateLinesRasterized
));
2979 p
.PrintKeyBool("fullyCoveredFragmentShaderInputVariable", static_cast<bool>(obj
.fullyCoveredFragmentShaderInputVariable
));
2980 p
.PrintKeyBool("conservativeRasterizationPostDepthCoverage", static_cast<bool>(obj
.conservativeRasterizationPostDepthCoverage
));
2982 void DumpVkPhysicalDeviceCooperativeMatrixFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceCooperativeMatrixFeaturesKHR
&obj
) {
2983 ObjectWrapper object
{p
, name
};
2984 p
.SetMinKeyWidth(35);
2985 p
.PrintKeyBool("cooperativeMatrix", static_cast<bool>(obj
.cooperativeMatrix
));
2986 p
.PrintKeyBool("cooperativeMatrixRobustBufferAccess", static_cast<bool>(obj
.cooperativeMatrixRobustBufferAccess
));
2988 void DumpVkPhysicalDeviceCooperativeMatrixPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceCooperativeMatrixPropertiesKHR
&obj
) {
2989 ObjectWrapper object
{p
, name
};
2990 DumpVkShaderStageFlags(p
, "cooperativeMatrixSupportedStages", obj
.cooperativeMatrixSupportedStages
);
2992 void DumpVkPhysicalDeviceCustomBorderColorFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceCustomBorderColorFeaturesEXT
&obj
) {
2993 ObjectWrapper object
{p
, name
};
2994 p
.SetMinKeyWidth(30);
2995 p
.PrintKeyBool("customBorderColors", static_cast<bool>(obj
.customBorderColors
));
2996 p
.PrintKeyBool("customBorderColorWithoutFormat", static_cast<bool>(obj
.customBorderColorWithoutFormat
));
2998 void DumpVkPhysicalDeviceCustomBorderColorPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceCustomBorderColorPropertiesEXT
&obj
) {
2999 ObjectWrapper object
{p
, name
};
3000 p
.SetMinKeyWidth(28);
3001 p
.PrintKeyValue("maxCustomBorderColorSamplers", obj
.maxCustomBorderColorSamplers
);
3003 void DumpVkPhysicalDeviceDepthBiasControlFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthBiasControlFeaturesEXT
&obj
) {
3004 ObjectWrapper object
{p
, name
};
3005 p
.SetMinKeyWidth(47);
3006 p
.PrintKeyBool("depthBiasControl", static_cast<bool>(obj
.depthBiasControl
));
3007 p
.PrintKeyBool("leastRepresentableValueForceUnormRepresentation", static_cast<bool>(obj
.leastRepresentableValueForceUnormRepresentation
));
3008 p
.PrintKeyBool("floatRepresentation", static_cast<bool>(obj
.floatRepresentation
));
3009 p
.PrintKeyBool("depthBiasExact", static_cast<bool>(obj
.depthBiasExact
));
3011 void DumpVkPhysicalDeviceDepthClampControlFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthClampControlFeaturesEXT
&obj
) {
3012 ObjectWrapper object
{p
, name
};
3013 p
.SetMinKeyWidth(17);
3014 p
.PrintKeyBool("depthClampControl", static_cast<bool>(obj
.depthClampControl
));
3016 void DumpVkPhysicalDeviceDepthClampZeroOneFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthClampZeroOneFeaturesKHR
&obj
) {
3017 ObjectWrapper object
{p
, name
};
3018 p
.SetMinKeyWidth(17);
3019 p
.PrintKeyBool("depthClampZeroOne", static_cast<bool>(obj
.depthClampZeroOne
));
3021 void DumpVkPhysicalDeviceDepthClipControlFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthClipControlFeaturesEXT
&obj
) {
3022 ObjectWrapper object
{p
, name
};
3023 p
.SetMinKeyWidth(16);
3024 p
.PrintKeyBool("depthClipControl", static_cast<bool>(obj
.depthClipControl
));
3026 void DumpVkPhysicalDeviceDepthClipEnableFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthClipEnableFeaturesEXT
&obj
) {
3027 ObjectWrapper object
{p
, name
};
3028 p
.SetMinKeyWidth(15);
3029 p
.PrintKeyBool("depthClipEnable", static_cast<bool>(obj
.depthClipEnable
));
3031 void DumpVkPhysicalDeviceDepthStencilResolveProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthStencilResolveProperties
&obj
) {
3032 ObjectWrapper object
{p
, name
};
3033 p
.SetMinKeyWidth(22);
3034 DumpVkResolveModeFlags(p
, "supportedDepthResolveModes", obj
.supportedDepthResolveModes
);
3035 DumpVkResolveModeFlags(p
, "supportedStencilResolveModes", obj
.supportedStencilResolveModes
);
3036 p
.PrintKeyBool("independentResolveNone", static_cast<bool>(obj
.independentResolveNone
));
3037 p
.PrintKeyBool("independentResolve", static_cast<bool>(obj
.independentResolve
));
3039 void DumpVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
&obj
) {
3040 ObjectWrapper object
{p
, name
};
3041 p
.SetMinKeyWidth(44);
3042 p
.PrintKeyValue("combinedImageSamplerDensityMapDescriptorSize", obj
.combinedImageSamplerDensityMapDescriptorSize
);
3044 void DumpVkPhysicalDeviceDescriptorBufferFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorBufferFeaturesEXT
&obj
) {
3045 ObjectWrapper object
{p
, name
};
3046 p
.SetMinKeyWidth(34);
3047 p
.PrintKeyBool("descriptorBuffer", static_cast<bool>(obj
.descriptorBuffer
));
3048 p
.PrintKeyBool("descriptorBufferCaptureReplay", static_cast<bool>(obj
.descriptorBufferCaptureReplay
));
3049 p
.PrintKeyBool("descriptorBufferImageLayoutIgnored", static_cast<bool>(obj
.descriptorBufferImageLayoutIgnored
));
3050 p
.PrintKeyBool("descriptorBufferPushDescriptors", static_cast<bool>(obj
.descriptorBufferPushDescriptors
));
3052 void DumpVkPhysicalDeviceDescriptorBufferPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorBufferPropertiesEXT
&obj
) {
3053 ObjectWrapper object
{p
, name
};
3054 p
.SetMinKeyWidth(52);
3055 p
.PrintKeyBool("combinedImageSamplerDescriptorSingleArray", static_cast<bool>(obj
.combinedImageSamplerDescriptorSingleArray
));
3056 p
.PrintKeyBool("bufferlessPushDescriptors", static_cast<bool>(obj
.bufferlessPushDescriptors
));
3057 p
.PrintKeyBool("allowSamplerImageViewPostSubmitCreation", static_cast<bool>(obj
.allowSamplerImageViewPostSubmitCreation
));
3058 p
.PrintKeyValue("descriptorBufferOffsetAlignment", to_hex_str(p
, obj
.descriptorBufferOffsetAlignment
));
3059 p
.PrintKeyValue("maxDescriptorBufferBindings", obj
.maxDescriptorBufferBindings
);
3060 p
.PrintKeyValue("maxResourceDescriptorBufferBindings", obj
.maxResourceDescriptorBufferBindings
);
3061 p
.PrintKeyValue("maxSamplerDescriptorBufferBindings", obj
.maxSamplerDescriptorBufferBindings
);
3062 p
.PrintKeyValue("maxEmbeddedImmutableSamplerBindings", obj
.maxEmbeddedImmutableSamplerBindings
);
3063 p
.PrintKeyValue("maxEmbeddedImmutableSamplers", obj
.maxEmbeddedImmutableSamplers
);
3064 p
.PrintKeyValue("bufferCaptureReplayDescriptorDataSize", obj
.bufferCaptureReplayDescriptorDataSize
);
3065 p
.PrintKeyValue("imageCaptureReplayDescriptorDataSize", obj
.imageCaptureReplayDescriptorDataSize
);
3066 p
.PrintKeyValue("imageViewCaptureReplayDescriptorDataSize", obj
.imageViewCaptureReplayDescriptorDataSize
);
3067 p
.PrintKeyValue("samplerCaptureReplayDescriptorDataSize", obj
.samplerCaptureReplayDescriptorDataSize
);
3068 p
.PrintKeyValue("accelerationStructureCaptureReplayDescriptorDataSize", obj
.accelerationStructureCaptureReplayDescriptorDataSize
);
3069 p
.PrintKeyValue("samplerDescriptorSize", obj
.samplerDescriptorSize
);
3070 p
.PrintKeyValue("combinedImageSamplerDescriptorSize", obj
.combinedImageSamplerDescriptorSize
);
3071 p
.PrintKeyValue("sampledImageDescriptorSize", obj
.sampledImageDescriptorSize
);
3072 p
.PrintKeyValue("storageImageDescriptorSize", obj
.storageImageDescriptorSize
);
3073 p
.PrintKeyValue("uniformTexelBufferDescriptorSize", obj
.uniformTexelBufferDescriptorSize
);
3074 p
.PrintKeyValue("robustUniformTexelBufferDescriptorSize", obj
.robustUniformTexelBufferDescriptorSize
);
3075 p
.PrintKeyValue("storageTexelBufferDescriptorSize", obj
.storageTexelBufferDescriptorSize
);
3076 p
.PrintKeyValue("robustStorageTexelBufferDescriptorSize", obj
.robustStorageTexelBufferDescriptorSize
);
3077 p
.PrintKeyValue("uniformBufferDescriptorSize", obj
.uniformBufferDescriptorSize
);
3078 p
.PrintKeyValue("robustUniformBufferDescriptorSize", obj
.robustUniformBufferDescriptorSize
);
3079 p
.PrintKeyValue("storageBufferDescriptorSize", obj
.storageBufferDescriptorSize
);
3080 p
.PrintKeyValue("robustStorageBufferDescriptorSize", obj
.robustStorageBufferDescriptorSize
);
3081 p
.PrintKeyValue("inputAttachmentDescriptorSize", obj
.inputAttachmentDescriptorSize
);
3082 p
.PrintKeyValue("accelerationStructureDescriptorSize", obj
.accelerationStructureDescriptorSize
);
3083 p
.PrintKeyValue("maxSamplerDescriptorBufferRange", to_hex_str(p
, obj
.maxSamplerDescriptorBufferRange
));
3084 p
.PrintKeyValue("maxResourceDescriptorBufferRange", to_hex_str(p
, obj
.maxResourceDescriptorBufferRange
));
3085 p
.PrintKeyValue("samplerDescriptorBufferAddressSpaceSize", to_hex_str(p
, obj
.samplerDescriptorBufferAddressSpaceSize
));
3086 p
.PrintKeyValue("resourceDescriptorBufferAddressSpaceSize", to_hex_str(p
, obj
.resourceDescriptorBufferAddressSpaceSize
));
3087 p
.PrintKeyValue("descriptorBufferAddressSpaceSize", to_hex_str(p
, obj
.descriptorBufferAddressSpaceSize
));
3089 void DumpVkPhysicalDeviceDescriptorIndexingFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorIndexingFeatures
&obj
) {
3090 ObjectWrapper object
{p
, name
};
3091 p
.SetMinKeyWidth(50);
3092 p
.PrintKeyBool("shaderInputAttachmentArrayDynamicIndexing", static_cast<bool>(obj
.shaderInputAttachmentArrayDynamicIndexing
));
3093 p
.PrintKeyBool("shaderUniformTexelBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderUniformTexelBufferArrayDynamicIndexing
));
3094 p
.PrintKeyBool("shaderStorageTexelBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderStorageTexelBufferArrayDynamicIndexing
));
3095 p
.PrintKeyBool("shaderUniformBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderUniformBufferArrayNonUniformIndexing
));
3096 p
.PrintKeyBool("shaderSampledImageArrayNonUniformIndexing", static_cast<bool>(obj
.shaderSampledImageArrayNonUniformIndexing
));
3097 p
.PrintKeyBool("shaderStorageBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageBufferArrayNonUniformIndexing
));
3098 p
.PrintKeyBool("shaderStorageImageArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageImageArrayNonUniformIndexing
));
3099 p
.PrintKeyBool("shaderInputAttachmentArrayNonUniformIndexing", static_cast<bool>(obj
.shaderInputAttachmentArrayNonUniformIndexing
));
3100 p
.PrintKeyBool("shaderUniformTexelBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderUniformTexelBufferArrayNonUniformIndexing
));
3101 p
.PrintKeyBool("shaderStorageTexelBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageTexelBufferArrayNonUniformIndexing
));
3102 p
.PrintKeyBool("descriptorBindingUniformBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingUniformBufferUpdateAfterBind
));
3103 p
.PrintKeyBool("descriptorBindingSampledImageUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingSampledImageUpdateAfterBind
));
3104 p
.PrintKeyBool("descriptorBindingStorageImageUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageImageUpdateAfterBind
));
3105 p
.PrintKeyBool("descriptorBindingStorageBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageBufferUpdateAfterBind
));
3106 p
.PrintKeyBool("descriptorBindingUniformTexelBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingUniformTexelBufferUpdateAfterBind
));
3107 p
.PrintKeyBool("descriptorBindingStorageTexelBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageTexelBufferUpdateAfterBind
));
3108 p
.PrintKeyBool("descriptorBindingUpdateUnusedWhilePending", static_cast<bool>(obj
.descriptorBindingUpdateUnusedWhilePending
));
3109 p
.PrintKeyBool("descriptorBindingPartiallyBound", static_cast<bool>(obj
.descriptorBindingPartiallyBound
));
3110 p
.PrintKeyBool("descriptorBindingVariableDescriptorCount", static_cast<bool>(obj
.descriptorBindingVariableDescriptorCount
));
3111 p
.PrintKeyBool("runtimeDescriptorArray", static_cast<bool>(obj
.runtimeDescriptorArray
));
3113 void DumpVkPhysicalDeviceDescriptorIndexingProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorIndexingProperties
&obj
) {
3114 ObjectWrapper object
{p
, name
};
3115 p
.SetMinKeyWidth(52);
3116 p
.PrintKeyValue("maxUpdateAfterBindDescriptorsInAllPools", obj
.maxUpdateAfterBindDescriptorsInAllPools
);
3117 p
.PrintKeyBool("shaderUniformBufferArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderUniformBufferArrayNonUniformIndexingNative
));
3118 p
.PrintKeyBool("shaderSampledImageArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderSampledImageArrayNonUniformIndexingNative
));
3119 p
.PrintKeyBool("shaderStorageBufferArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderStorageBufferArrayNonUniformIndexingNative
));
3120 p
.PrintKeyBool("shaderStorageImageArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderStorageImageArrayNonUniformIndexingNative
));
3121 p
.PrintKeyBool("shaderInputAttachmentArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderInputAttachmentArrayNonUniformIndexingNative
));
3122 p
.PrintKeyBool("robustBufferAccessUpdateAfterBind", static_cast<bool>(obj
.robustBufferAccessUpdateAfterBind
));
3123 p
.PrintKeyBool("quadDivergentImplicitLod", static_cast<bool>(obj
.quadDivergentImplicitLod
));
3124 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindSamplers", obj
.maxPerStageDescriptorUpdateAfterBindSamplers
);
3125 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindUniformBuffers", obj
.maxPerStageDescriptorUpdateAfterBindUniformBuffers
);
3126 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindStorageBuffers", obj
.maxPerStageDescriptorUpdateAfterBindStorageBuffers
);
3127 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindSampledImages", obj
.maxPerStageDescriptorUpdateAfterBindSampledImages
);
3128 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindStorageImages", obj
.maxPerStageDescriptorUpdateAfterBindStorageImages
);
3129 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindInputAttachments", obj
.maxPerStageDescriptorUpdateAfterBindInputAttachments
);
3130 p
.PrintKeyValue("maxPerStageUpdateAfterBindResources", obj
.maxPerStageUpdateAfterBindResources
);
3131 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindSamplers", obj
.maxDescriptorSetUpdateAfterBindSamplers
);
3132 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindUniformBuffers", obj
.maxDescriptorSetUpdateAfterBindUniformBuffers
);
3133 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindUniformBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
);
3134 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageBuffers", obj
.maxDescriptorSetUpdateAfterBindStorageBuffers
);
3135 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
);
3136 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindSampledImages", obj
.maxDescriptorSetUpdateAfterBindSampledImages
);
3137 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageImages", obj
.maxDescriptorSetUpdateAfterBindStorageImages
);
3138 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindInputAttachments", obj
.maxDescriptorSetUpdateAfterBindInputAttachments
);
3140 void DumpVkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
&obj
) {
3141 ObjectWrapper object
{p
, name
};
3142 p
.SetMinKeyWidth(30);
3143 p
.PrintKeyBool("deviceGeneratedCommands", static_cast<bool>(obj
.deviceGeneratedCommands
));
3144 p
.PrintKeyBool("dynamicGeneratedPipelineLayout", static_cast<bool>(obj
.dynamicGeneratedPipelineLayout
));
3146 void DumpVkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
&obj
) {
3147 ObjectWrapper object
{p
, name
};
3148 p
.SetMinKeyWidth(45);
3149 p
.PrintKeyValue("maxIndirectPipelineCount", obj
.maxIndirectPipelineCount
);
3150 p
.PrintKeyValue("maxIndirectShaderObjectCount", obj
.maxIndirectShaderObjectCount
);
3151 p
.PrintKeyValue("maxIndirectSequenceCount", obj
.maxIndirectSequenceCount
);
3152 p
.PrintKeyValue("maxIndirectCommandsTokenCount", obj
.maxIndirectCommandsTokenCount
);
3153 p
.PrintKeyValue("maxIndirectCommandsTokenOffset", obj
.maxIndirectCommandsTokenOffset
);
3154 p
.PrintKeyValue("maxIndirectCommandsIndirectStride", obj
.maxIndirectCommandsIndirectStride
);
3155 DumpVkIndirectCommandsInputModeFlagsEXT(p
, "supportedIndirectCommandsInputModes", obj
.supportedIndirectCommandsInputModes
);
3156 DumpVkShaderStageFlags(p
, "supportedIndirectCommandsShaderStages", obj
.supportedIndirectCommandsShaderStages
);
3157 DumpVkShaderStageFlags(p
, "supportedIndirectCommandsShaderStagesPipelineBinding", obj
.supportedIndirectCommandsShaderStagesPipelineBinding
);
3158 DumpVkShaderStageFlags(p
, "supportedIndirectCommandsShaderStagesShaderBinding", obj
.supportedIndirectCommandsShaderStagesShaderBinding
);
3159 p
.PrintKeyBool("deviceGeneratedCommandsTransformFeedback", static_cast<bool>(obj
.deviceGeneratedCommandsTransformFeedback
));
3160 p
.PrintKeyBool("deviceGeneratedCommandsMultiDrawIndirectCount", static_cast<bool>(obj
.deviceGeneratedCommandsMultiDrawIndirectCount
));
3162 void DumpVkPhysicalDeviceDeviceMemoryReportFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
&obj
) {
3163 ObjectWrapper object
{p
, name
};
3164 p
.SetMinKeyWidth(18);
3165 p
.PrintKeyBool("deviceMemoryReport", static_cast<bool>(obj
.deviceMemoryReport
));
3167 void DumpVkPhysicalDeviceDiscardRectanglePropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDiscardRectanglePropertiesEXT
&obj
) {
3168 ObjectWrapper object
{p
, name
};
3169 p
.SetMinKeyWidth(20);
3170 p
.PrintKeyValue("maxDiscardRectangles", obj
.maxDiscardRectangles
);
3172 void DumpVkPhysicalDeviceDriverProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceDriverProperties
&obj
) {
3173 ObjectWrapper object
{p
, name
};
3174 p
.SetMinKeyWidth(15);
3175 DumpVkDriverId(p
, "driverID", obj
.driverID
);
3176 p
.PrintKeyString("driverName", obj
.driverName
);
3177 p
.PrintKeyString("driverInfo", obj
.driverInfo
);
3178 DumpVkConformanceVersion(p
, "conformanceVersion", obj
.conformanceVersion
);
3180 void DumpVkPhysicalDeviceDrmPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDrmPropertiesEXT
&obj
) {
3181 ObjectWrapper object
{p
, name
};
3182 p
.SetMinKeyWidth(12);
3183 p
.PrintKeyBool("hasPrimary", static_cast<bool>(obj
.hasPrimary
));
3184 p
.PrintKeyBool("hasRender", static_cast<bool>(obj
.hasRender
));
3185 p
.PrintKeyValue("primaryMajor", obj
.primaryMajor
);
3186 p
.PrintKeyValue("primaryMinor", obj
.primaryMinor
);
3187 p
.PrintKeyValue("renderMajor", obj
.renderMajor
);
3188 p
.PrintKeyValue("renderMinor", obj
.renderMinor
);
3190 void DumpVkPhysicalDeviceDynamicRenderingFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceDynamicRenderingFeatures
&obj
) {
3191 ObjectWrapper object
{p
, name
};
3192 p
.SetMinKeyWidth(16);
3193 p
.PrintKeyBool("dynamicRendering", static_cast<bool>(obj
.dynamicRendering
));
3195 void DumpVkPhysicalDeviceDynamicRenderingLocalReadFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceDynamicRenderingLocalReadFeatures
&obj
) {
3196 ObjectWrapper object
{p
, name
};
3197 p
.SetMinKeyWidth(25);
3198 p
.PrintKeyBool("dynamicRenderingLocalRead", static_cast<bool>(obj
.dynamicRenderingLocalRead
));
3200 void DumpVkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
&obj
) {
3201 ObjectWrapper object
{p
, name
};
3202 p
.SetMinKeyWidth(33);
3203 p
.PrintKeyBool("dynamicRenderingUnusedAttachments", static_cast<bool>(obj
.dynamicRenderingUnusedAttachments
));
3205 void DumpVkPhysicalDeviceExtendedDynamicState2FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
&obj
) {
3206 ObjectWrapper object
{p
, name
};
3207 p
.SetMinKeyWidth(39);
3208 p
.PrintKeyBool("extendedDynamicState2", static_cast<bool>(obj
.extendedDynamicState2
));
3209 p
.PrintKeyBool("extendedDynamicState2LogicOp", static_cast<bool>(obj
.extendedDynamicState2LogicOp
));
3210 p
.PrintKeyBool("extendedDynamicState2PatchControlPoints", static_cast<bool>(obj
.extendedDynamicState2PatchControlPoints
));
3212 void DumpVkPhysicalDeviceExtendedDynamicState3FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT
&obj
) {
3213 ObjectWrapper object
{p
, name
};
3214 p
.SetMinKeyWidth(53);
3215 p
.PrintKeyBool("extendedDynamicState3TessellationDomainOrigin", static_cast<bool>(obj
.extendedDynamicState3TessellationDomainOrigin
));
3216 p
.PrintKeyBool("extendedDynamicState3DepthClampEnable", static_cast<bool>(obj
.extendedDynamicState3DepthClampEnable
));
3217 p
.PrintKeyBool("extendedDynamicState3PolygonMode", static_cast<bool>(obj
.extendedDynamicState3PolygonMode
));
3218 p
.PrintKeyBool("extendedDynamicState3RasterizationSamples", static_cast<bool>(obj
.extendedDynamicState3RasterizationSamples
));
3219 p
.PrintKeyBool("extendedDynamicState3SampleMask", static_cast<bool>(obj
.extendedDynamicState3SampleMask
));
3220 p
.PrintKeyBool("extendedDynamicState3AlphaToCoverageEnable", static_cast<bool>(obj
.extendedDynamicState3AlphaToCoverageEnable
));
3221 p
.PrintKeyBool("extendedDynamicState3AlphaToOneEnable", static_cast<bool>(obj
.extendedDynamicState3AlphaToOneEnable
));
3222 p
.PrintKeyBool("extendedDynamicState3LogicOpEnable", static_cast<bool>(obj
.extendedDynamicState3LogicOpEnable
));
3223 p
.PrintKeyBool("extendedDynamicState3ColorBlendEnable", static_cast<bool>(obj
.extendedDynamicState3ColorBlendEnable
));
3224 p
.PrintKeyBool("extendedDynamicState3ColorBlendEquation", static_cast<bool>(obj
.extendedDynamicState3ColorBlendEquation
));
3225 p
.PrintKeyBool("extendedDynamicState3ColorWriteMask", static_cast<bool>(obj
.extendedDynamicState3ColorWriteMask
));
3226 p
.PrintKeyBool("extendedDynamicState3RasterizationStream", static_cast<bool>(obj
.extendedDynamicState3RasterizationStream
));
3227 p
.PrintKeyBool("extendedDynamicState3ConservativeRasterizationMode", static_cast<bool>(obj
.extendedDynamicState3ConservativeRasterizationMode
));
3228 p
.PrintKeyBool("extendedDynamicState3ExtraPrimitiveOverestimationSize", static_cast<bool>(obj
.extendedDynamicState3ExtraPrimitiveOverestimationSize
));
3229 p
.PrintKeyBool("extendedDynamicState3DepthClipEnable", static_cast<bool>(obj
.extendedDynamicState3DepthClipEnable
));
3230 p
.PrintKeyBool("extendedDynamicState3SampleLocationsEnable", static_cast<bool>(obj
.extendedDynamicState3SampleLocationsEnable
));
3231 p
.PrintKeyBool("extendedDynamicState3ColorBlendAdvanced", static_cast<bool>(obj
.extendedDynamicState3ColorBlendAdvanced
));
3232 p
.PrintKeyBool("extendedDynamicState3ProvokingVertexMode", static_cast<bool>(obj
.extendedDynamicState3ProvokingVertexMode
));
3233 p
.PrintKeyBool("extendedDynamicState3LineRasterizationMode", static_cast<bool>(obj
.extendedDynamicState3LineRasterizationMode
));
3234 p
.PrintKeyBool("extendedDynamicState3LineStippleEnable", static_cast<bool>(obj
.extendedDynamicState3LineStippleEnable
));
3235 p
.PrintKeyBool("extendedDynamicState3DepthClipNegativeOneToOne", static_cast<bool>(obj
.extendedDynamicState3DepthClipNegativeOneToOne
));
3236 p
.PrintKeyBool("extendedDynamicState3ViewportWScalingEnable", static_cast<bool>(obj
.extendedDynamicState3ViewportWScalingEnable
));
3237 p
.PrintKeyBool("extendedDynamicState3ViewportSwizzle", static_cast<bool>(obj
.extendedDynamicState3ViewportSwizzle
));
3238 p
.PrintKeyBool("extendedDynamicState3CoverageToColorEnable", static_cast<bool>(obj
.extendedDynamicState3CoverageToColorEnable
));
3239 p
.PrintKeyBool("extendedDynamicState3CoverageToColorLocation", static_cast<bool>(obj
.extendedDynamicState3CoverageToColorLocation
));
3240 p
.PrintKeyBool("extendedDynamicState3CoverageModulationMode", static_cast<bool>(obj
.extendedDynamicState3CoverageModulationMode
));
3241 p
.PrintKeyBool("extendedDynamicState3CoverageModulationTableEnable", static_cast<bool>(obj
.extendedDynamicState3CoverageModulationTableEnable
));
3242 p
.PrintKeyBool("extendedDynamicState3CoverageModulationTable", static_cast<bool>(obj
.extendedDynamicState3CoverageModulationTable
));
3243 p
.PrintKeyBool("extendedDynamicState3CoverageReductionMode", static_cast<bool>(obj
.extendedDynamicState3CoverageReductionMode
));
3244 p
.PrintKeyBool("extendedDynamicState3RepresentativeFragmentTestEnable", static_cast<bool>(obj
.extendedDynamicState3RepresentativeFragmentTestEnable
));
3245 p
.PrintKeyBool("extendedDynamicState3ShadingRateImageEnable", static_cast<bool>(obj
.extendedDynamicState3ShadingRateImageEnable
));
3247 void DumpVkPhysicalDeviceExtendedDynamicState3PropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT
&obj
) {
3248 ObjectWrapper object
{p
, name
};
3249 p
.SetMinKeyWidth(36);
3250 p
.PrintKeyBool("dynamicPrimitiveTopologyUnrestricted", static_cast<bool>(obj
.dynamicPrimitiveTopologyUnrestricted
));
3252 void DumpVkPhysicalDeviceExtendedDynamicStateFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
&obj
) {
3253 ObjectWrapper object
{p
, name
};
3254 p
.SetMinKeyWidth(20);
3255 p
.PrintKeyBool("extendedDynamicState", static_cast<bool>(obj
.extendedDynamicState
));
3257 void DumpVkPhysicalDeviceExternalMemoryHostPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT
&obj
) {
3258 ObjectWrapper object
{p
, name
};
3259 p
.SetMinKeyWidth(31);
3260 p
.PrintKeyValue("minImportedHostPointerAlignment", to_hex_str(p
, obj
.minImportedHostPointerAlignment
));
3262 void DumpVkPhysicalDeviceFaultFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFaultFeaturesEXT
&obj
) {
3263 ObjectWrapper object
{p
, name
};
3264 p
.SetMinKeyWidth(23);
3265 p
.PrintKeyBool("deviceFault", static_cast<bool>(obj
.deviceFault
));
3266 p
.PrintKeyBool("deviceFaultVendorBinary", static_cast<bool>(obj
.deviceFaultVendorBinary
));
3268 void DumpVkPhysicalDeviceFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceFeatures
&obj
) {
3269 ObjectWrapper object
{p
, name
};
3270 p
.SetMinKeyWidth(39);
3271 p
.PrintKeyBool("robustBufferAccess", static_cast<bool>(obj
.robustBufferAccess
));
3272 p
.PrintKeyBool("fullDrawIndexUint32", static_cast<bool>(obj
.fullDrawIndexUint32
));
3273 p
.PrintKeyBool("imageCubeArray", static_cast<bool>(obj
.imageCubeArray
));
3274 p
.PrintKeyBool("independentBlend", static_cast<bool>(obj
.independentBlend
));
3275 p
.PrintKeyBool("geometryShader", static_cast<bool>(obj
.geometryShader
));
3276 p
.PrintKeyBool("tessellationShader", static_cast<bool>(obj
.tessellationShader
));
3277 p
.PrintKeyBool("sampleRateShading", static_cast<bool>(obj
.sampleRateShading
));
3278 p
.PrintKeyBool("dualSrcBlend", static_cast<bool>(obj
.dualSrcBlend
));
3279 p
.PrintKeyBool("logicOp", static_cast<bool>(obj
.logicOp
));
3280 p
.PrintKeyBool("multiDrawIndirect", static_cast<bool>(obj
.multiDrawIndirect
));
3281 p
.PrintKeyBool("drawIndirectFirstInstance", static_cast<bool>(obj
.drawIndirectFirstInstance
));
3282 p
.PrintKeyBool("depthClamp", static_cast<bool>(obj
.depthClamp
));
3283 p
.PrintKeyBool("depthBiasClamp", static_cast<bool>(obj
.depthBiasClamp
));
3284 p
.PrintKeyBool("fillModeNonSolid", static_cast<bool>(obj
.fillModeNonSolid
));
3285 p
.PrintKeyBool("depthBounds", static_cast<bool>(obj
.depthBounds
));
3286 p
.PrintKeyBool("wideLines", static_cast<bool>(obj
.wideLines
));
3287 p
.PrintKeyBool("largePoints", static_cast<bool>(obj
.largePoints
));
3288 p
.PrintKeyBool("alphaToOne", static_cast<bool>(obj
.alphaToOne
));
3289 p
.PrintKeyBool("multiViewport", static_cast<bool>(obj
.multiViewport
));
3290 p
.PrintKeyBool("samplerAnisotropy", static_cast<bool>(obj
.samplerAnisotropy
));
3291 p
.PrintKeyBool("textureCompressionETC2", static_cast<bool>(obj
.textureCompressionETC2
));
3292 p
.PrintKeyBool("textureCompressionASTC_LDR", static_cast<bool>(obj
.textureCompressionASTC_LDR
));
3293 p
.PrintKeyBool("textureCompressionBC", static_cast<bool>(obj
.textureCompressionBC
));
3294 p
.PrintKeyBool("occlusionQueryPrecise", static_cast<bool>(obj
.occlusionQueryPrecise
));
3295 p
.PrintKeyBool("pipelineStatisticsQuery", static_cast<bool>(obj
.pipelineStatisticsQuery
));
3296 p
.PrintKeyBool("vertexPipelineStoresAndAtomics", static_cast<bool>(obj
.vertexPipelineStoresAndAtomics
));
3297 p
.PrintKeyBool("fragmentStoresAndAtomics", static_cast<bool>(obj
.fragmentStoresAndAtomics
));
3298 p
.PrintKeyBool("shaderTessellationAndGeometryPointSize", static_cast<bool>(obj
.shaderTessellationAndGeometryPointSize
));
3299 p
.PrintKeyBool("shaderImageGatherExtended", static_cast<bool>(obj
.shaderImageGatherExtended
));
3300 p
.PrintKeyBool("shaderStorageImageExtendedFormats", static_cast<bool>(obj
.shaderStorageImageExtendedFormats
));
3301 p
.PrintKeyBool("shaderStorageImageMultisample", static_cast<bool>(obj
.shaderStorageImageMultisample
));
3302 p
.PrintKeyBool("shaderStorageImageReadWithoutFormat", static_cast<bool>(obj
.shaderStorageImageReadWithoutFormat
));
3303 p
.PrintKeyBool("shaderStorageImageWriteWithoutFormat", static_cast<bool>(obj
.shaderStorageImageWriteWithoutFormat
));
3304 p
.PrintKeyBool("shaderUniformBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderUniformBufferArrayDynamicIndexing
));
3305 p
.PrintKeyBool("shaderSampledImageArrayDynamicIndexing", static_cast<bool>(obj
.shaderSampledImageArrayDynamicIndexing
));
3306 p
.PrintKeyBool("shaderStorageBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderStorageBufferArrayDynamicIndexing
));
3307 p
.PrintKeyBool("shaderStorageImageArrayDynamicIndexing", static_cast<bool>(obj
.shaderStorageImageArrayDynamicIndexing
));
3308 p
.PrintKeyBool("shaderClipDistance", static_cast<bool>(obj
.shaderClipDistance
));
3309 p
.PrintKeyBool("shaderCullDistance", static_cast<bool>(obj
.shaderCullDistance
));
3310 p
.PrintKeyBool("shaderFloat64", static_cast<bool>(obj
.shaderFloat64
));
3311 p
.PrintKeyBool("shaderInt64", static_cast<bool>(obj
.shaderInt64
));
3312 p
.PrintKeyBool("shaderInt16", static_cast<bool>(obj
.shaderInt16
));
3313 p
.PrintKeyBool("shaderResourceResidency", static_cast<bool>(obj
.shaderResourceResidency
));
3314 p
.PrintKeyBool("shaderResourceMinLod", static_cast<bool>(obj
.shaderResourceMinLod
));
3315 p
.PrintKeyBool("sparseBinding", static_cast<bool>(obj
.sparseBinding
));
3316 p
.PrintKeyBool("sparseResidencyBuffer", static_cast<bool>(obj
.sparseResidencyBuffer
));
3317 p
.PrintKeyBool("sparseResidencyImage2D", static_cast<bool>(obj
.sparseResidencyImage2D
));
3318 p
.PrintKeyBool("sparseResidencyImage3D", static_cast<bool>(obj
.sparseResidencyImage3D
));
3319 p
.PrintKeyBool("sparseResidency2Samples", static_cast<bool>(obj
.sparseResidency2Samples
));
3320 p
.PrintKeyBool("sparseResidency4Samples", static_cast<bool>(obj
.sparseResidency4Samples
));
3321 p
.PrintKeyBool("sparseResidency8Samples", static_cast<bool>(obj
.sparseResidency8Samples
));
3322 p
.PrintKeyBool("sparseResidency16Samples", static_cast<bool>(obj
.sparseResidency16Samples
));
3323 p
.PrintKeyBool("sparseResidencyAliased", static_cast<bool>(obj
.sparseResidencyAliased
));
3324 p
.PrintKeyBool("variableMultisampleRate", static_cast<bool>(obj
.variableMultisampleRate
));
3325 p
.PrintKeyBool("inheritedQueries", static_cast<bool>(obj
.inheritedQueries
));
3327 void DumpVkPhysicalDeviceFloatControlsProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceFloatControlsProperties
&obj
) {
3328 ObjectWrapper object
{p
, name
};
3329 p
.SetMinKeyWidth(37);
3330 DumpVkShaderFloatControlsIndependence(p
, "denormBehaviorIndependence", obj
.denormBehaviorIndependence
);
3331 DumpVkShaderFloatControlsIndependence(p
, "roundingModeIndependence", obj
.roundingModeIndependence
);
3332 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat16", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat16
));
3333 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat32", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat32
));
3334 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat64", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat64
));
3335 p
.PrintKeyBool("shaderDenormPreserveFloat16", static_cast<bool>(obj
.shaderDenormPreserveFloat16
));
3336 p
.PrintKeyBool("shaderDenormPreserveFloat32", static_cast<bool>(obj
.shaderDenormPreserveFloat32
));
3337 p
.PrintKeyBool("shaderDenormPreserveFloat64", static_cast<bool>(obj
.shaderDenormPreserveFloat64
));
3338 p
.PrintKeyBool("shaderDenormFlushToZeroFloat16", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat16
));
3339 p
.PrintKeyBool("shaderDenormFlushToZeroFloat32", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat32
));
3340 p
.PrintKeyBool("shaderDenormFlushToZeroFloat64", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat64
));
3341 p
.PrintKeyBool("shaderRoundingModeRTEFloat16", static_cast<bool>(obj
.shaderRoundingModeRTEFloat16
));
3342 p
.PrintKeyBool("shaderRoundingModeRTEFloat32", static_cast<bool>(obj
.shaderRoundingModeRTEFloat32
));
3343 p
.PrintKeyBool("shaderRoundingModeRTEFloat64", static_cast<bool>(obj
.shaderRoundingModeRTEFloat64
));
3344 p
.PrintKeyBool("shaderRoundingModeRTZFloat16", static_cast<bool>(obj
.shaderRoundingModeRTZFloat16
));
3345 p
.PrintKeyBool("shaderRoundingModeRTZFloat32", static_cast<bool>(obj
.shaderRoundingModeRTZFloat32
));
3346 p
.PrintKeyBool("shaderRoundingModeRTZFloat64", static_cast<bool>(obj
.shaderRoundingModeRTZFloat64
));
3348 void DumpVkPhysicalDeviceFragmentDensityMap2FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
&obj
) {
3349 ObjectWrapper object
{p
, name
};
3350 p
.SetMinKeyWidth(26);
3351 p
.PrintKeyBool("fragmentDensityMapDeferred", static_cast<bool>(obj
.fragmentDensityMapDeferred
));
3353 void DumpVkPhysicalDeviceFragmentDensityMap2PropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
&obj
) {
3354 ObjectWrapper object
{p
, name
};
3355 p
.SetMinKeyWidth(41);
3356 p
.PrintKeyBool("subsampledLoads", static_cast<bool>(obj
.subsampledLoads
));
3357 p
.PrintKeyBool("subsampledCoarseReconstructionEarlyAccess", static_cast<bool>(obj
.subsampledCoarseReconstructionEarlyAccess
));
3358 p
.PrintKeyValue("maxSubsampledArrayLayers", obj
.maxSubsampledArrayLayers
);
3359 p
.PrintKeyValue("maxDescriptorSetSubsampledSamplers", obj
.maxDescriptorSetSubsampledSamplers
);
3361 void DumpVkPhysicalDeviceFragmentDensityMapFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT
&obj
) {
3362 ObjectWrapper object
{p
, name
};
3363 p
.SetMinKeyWidth(37);
3364 p
.PrintKeyBool("fragmentDensityMap", static_cast<bool>(obj
.fragmentDensityMap
));
3365 p
.PrintKeyBool("fragmentDensityMapDynamic", static_cast<bool>(obj
.fragmentDensityMapDynamic
));
3366 p
.PrintKeyBool("fragmentDensityMapNonSubsampledImages", static_cast<bool>(obj
.fragmentDensityMapNonSubsampledImages
));
3368 void DumpVkPhysicalDeviceFragmentDensityMapPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT
&obj
) {
3369 ObjectWrapper object
{p
, name
};
3370 p
.SetMinKeyWidth(26);
3371 DumpVkExtent2D(p
, "minFragmentDensityTexelSize", obj
.minFragmentDensityTexelSize
);
3372 DumpVkExtent2D(p
, "maxFragmentDensityTexelSize", obj
.maxFragmentDensityTexelSize
);
3373 p
.PrintKeyBool("fragmentDensityInvocations", static_cast<bool>(obj
.fragmentDensityInvocations
));
3375 void DumpVkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
&obj
) {
3376 ObjectWrapper object
{p
, name
};
3377 p
.SetMinKeyWidth(25);
3378 p
.PrintKeyBool("fragmentShaderBarycentric", static_cast<bool>(obj
.fragmentShaderBarycentric
));
3380 void DumpVkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
&obj
) {
3381 ObjectWrapper object
{p
, name
};
3382 p
.SetMinKeyWidth(47);
3383 p
.PrintKeyBool("triStripVertexOrderIndependentOfProvokingVertex", static_cast<bool>(obj
.triStripVertexOrderIndependentOfProvokingVertex
));
3385 void DumpVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
&obj
) {
3386 ObjectWrapper object
{p
, name
};
3387 p
.SetMinKeyWidth(34);
3388 p
.PrintKeyBool("fragmentShaderSampleInterlock", static_cast<bool>(obj
.fragmentShaderSampleInterlock
));
3389 p
.PrintKeyBool("fragmentShaderPixelInterlock", static_cast<bool>(obj
.fragmentShaderPixelInterlock
));
3390 p
.PrintKeyBool("fragmentShaderShadingRateInterlock", static_cast<bool>(obj
.fragmentShaderShadingRateInterlock
));
3392 void DumpVkPhysicalDeviceFragmentShadingRateFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR
&obj
) {
3393 ObjectWrapper object
{p
, name
};
3394 p
.SetMinKeyWidth(29);
3395 p
.PrintKeyBool("pipelineFragmentShadingRate", static_cast<bool>(obj
.pipelineFragmentShadingRate
));
3396 p
.PrintKeyBool("primitiveFragmentShadingRate", static_cast<bool>(obj
.primitiveFragmentShadingRate
));
3397 p
.PrintKeyBool("attachmentFragmentShadingRate", static_cast<bool>(obj
.attachmentFragmentShadingRate
));
3399 void DumpVkPhysicalDeviceFragmentShadingRatePropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR
&obj
) {
3400 ObjectWrapper object
{p
, name
};
3401 p
.SetMinKeyWidth(52);
3402 DumpVkExtent2D(p
, "minFragmentShadingRateAttachmentTexelSize", obj
.minFragmentShadingRateAttachmentTexelSize
);
3403 DumpVkExtent2D(p
, "maxFragmentShadingRateAttachmentTexelSize", obj
.maxFragmentShadingRateAttachmentTexelSize
);
3404 p
.PrintKeyValue("maxFragmentShadingRateAttachmentTexelSizeAspectRatio", obj
.maxFragmentShadingRateAttachmentTexelSizeAspectRatio
);
3405 p
.PrintKeyBool("primitiveFragmentShadingRateWithMultipleViewports", static_cast<bool>(obj
.primitiveFragmentShadingRateWithMultipleViewports
));
3406 p
.PrintKeyBool("layeredShadingRateAttachments", static_cast<bool>(obj
.layeredShadingRateAttachments
));
3407 p
.PrintKeyBool("fragmentShadingRateNonTrivialCombinerOps", static_cast<bool>(obj
.fragmentShadingRateNonTrivialCombinerOps
));
3408 DumpVkExtent2D(p
, "maxFragmentSize", obj
.maxFragmentSize
);
3409 p
.PrintKeyValue("maxFragmentSizeAspectRatio", obj
.maxFragmentSizeAspectRatio
);
3410 p
.PrintKeyValue("maxFragmentShadingRateCoverageSamples", obj
.maxFragmentShadingRateCoverageSamples
);
3411 DumpVkSampleCountFlagBits(p
, "maxFragmentShadingRateRasterizationSamples", obj
.maxFragmentShadingRateRasterizationSamples
);
3412 p
.PrintKeyBool("fragmentShadingRateWithShaderDepthStencilWrites", static_cast<bool>(obj
.fragmentShadingRateWithShaderDepthStencilWrites
));
3413 p
.PrintKeyBool("fragmentShadingRateWithSampleMask", static_cast<bool>(obj
.fragmentShadingRateWithSampleMask
));
3414 p
.PrintKeyBool("fragmentShadingRateWithShaderSampleMask", static_cast<bool>(obj
.fragmentShadingRateWithShaderSampleMask
));
3415 p
.PrintKeyBool("fragmentShadingRateWithConservativeRasterization", static_cast<bool>(obj
.fragmentShadingRateWithConservativeRasterization
));
3416 p
.PrintKeyBool("fragmentShadingRateWithFragmentShaderInterlock", static_cast<bool>(obj
.fragmentShadingRateWithFragmentShaderInterlock
));
3417 p
.PrintKeyBool("fragmentShadingRateWithCustomSampleLocations", static_cast<bool>(obj
.fragmentShadingRateWithCustomSampleLocations
));
3418 p
.PrintKeyBool("fragmentShadingRateStrictMultiplyCombiner", static_cast<bool>(obj
.fragmentShadingRateStrictMultiplyCombiner
));
3420 void DumpVkPhysicalDeviceFrameBoundaryFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFrameBoundaryFeaturesEXT
&obj
) {
3421 ObjectWrapper object
{p
, name
};
3422 p
.SetMinKeyWidth(13);
3423 p
.PrintKeyBool("frameBoundary", static_cast<bool>(obj
.frameBoundary
));
3425 void DumpVkPhysicalDeviceGlobalPriorityQueryFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceGlobalPriorityQueryFeatures
&obj
) {
3426 ObjectWrapper object
{p
, name
};
3427 p
.SetMinKeyWidth(19);
3428 p
.PrintKeyBool("globalPriorityQuery", static_cast<bool>(obj
.globalPriorityQuery
));
3430 void DumpVkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
&obj
) {
3431 ObjectWrapper object
{p
, name
};
3432 p
.SetMinKeyWidth(23);
3433 p
.PrintKeyBool("graphicsPipelineLibrary", static_cast<bool>(obj
.graphicsPipelineLibrary
));
3435 void DumpVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
&obj
) {
3436 ObjectWrapper object
{p
, name
};
3437 p
.SetMinKeyWidth(57);
3438 p
.PrintKeyBool("graphicsPipelineLibraryFastLinking", static_cast<bool>(obj
.graphicsPipelineLibraryFastLinking
));
3439 p
.PrintKeyBool("graphicsPipelineLibraryIndependentInterpolationDecoration", static_cast<bool>(obj
.graphicsPipelineLibraryIndependentInterpolationDecoration
));
3441 void DumpVkPhysicalDeviceHostImageCopyFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceHostImageCopyFeatures
&obj
) {
3442 ObjectWrapper object
{p
, name
};
3443 p
.SetMinKeyWidth(13);
3444 p
.PrintKeyBool("hostImageCopy", static_cast<bool>(obj
.hostImageCopy
));
3446 void DumpVkPhysicalDeviceHostImageCopyProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceHostImageCopyProperties
&obj
) {
3447 ObjectWrapper object
{p
, name
};
3448 p
.SetMinKeyWidth(35);
3449 p
.PrintKeyValue("copySrcLayoutCount", obj
.copySrcLayoutCount
);
3450 if (obj
.copySrcLayoutCount
== 0 || obj
.pCopySrcLayouts
== nullptr) {
3451 p
.PrintKeyString("pCopySrcLayouts", "NULL");
3453 ArrayWrapper
arr(p
,"pCopySrcLayouts", obj
.copySrcLayoutCount
);
3454 for (uint32_t i
= 0; i
< obj
.copySrcLayoutCount
; i
++) {
3455 DumpVkImageLayout(p
, std::to_string(i
), obj
.pCopySrcLayouts
[i
]);
3458 p
.PrintKeyValue("copyDstLayoutCount", obj
.copyDstLayoutCount
);
3459 if (obj
.copyDstLayoutCount
== 0 || obj
.pCopyDstLayouts
== nullptr) {
3460 p
.PrintKeyString("pCopyDstLayouts", "NULL");
3462 ArrayWrapper
arr(p
,"pCopyDstLayouts", obj
.copyDstLayoutCount
);
3463 for (uint32_t i
= 0; i
< obj
.copyDstLayoutCount
; i
++) {
3464 DumpVkImageLayout(p
, std::to_string(i
), obj
.pCopyDstLayouts
[i
]);
3467 p
.PrintKeyValue("optimalTilingLayoutUUID", obj
.optimalTilingLayoutUUID
);
3468 p
.PrintKeyBool("identicalMemoryTypeRequirements", static_cast<bool>(obj
.identicalMemoryTypeRequirements
));
3470 void DumpVkPhysicalDeviceHostQueryResetFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceHostQueryResetFeatures
&obj
) {
3471 ObjectWrapper object
{p
, name
};
3472 p
.SetMinKeyWidth(14);
3473 p
.PrintKeyBool("hostQueryReset", static_cast<bool>(obj
.hostQueryReset
));
3475 void DumpVkPhysicalDeviceIDProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceIDProperties
&obj
) {
3476 ObjectWrapper object
{p
, name
};
3477 p
.SetMinKeyWidth(15);
3478 p
.PrintKeyValue("deviceUUID", obj
.deviceUUID
);
3479 p
.PrintKeyValue("driverUUID", obj
.driverUUID
);
3480 if (obj
.deviceLUIDValid
) { // special case
3481 p
.PrintKeyValue("deviceLUID", obj
.deviceLUID
);
3483 p
.PrintKeyValue("deviceNodeMask", obj
.deviceNodeMask
);
3484 p
.PrintKeyBool("deviceLUIDValid", static_cast<bool>(obj
.deviceLUIDValid
));
3486 void DumpVkPhysicalDeviceImage2DViewOf3DFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
&obj
) {
3487 ObjectWrapper object
{p
, name
};
3488 p
.SetMinKeyWidth(17);
3489 p
.PrintKeyBool("image2DViewOf3D", static_cast<bool>(obj
.image2DViewOf3D
));
3490 p
.PrintKeyBool("sampler2DViewOf3D", static_cast<bool>(obj
.sampler2DViewOf3D
));
3492 void DumpVkPhysicalDeviceImageCompressionControlFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImageCompressionControlFeaturesEXT
&obj
) {
3493 ObjectWrapper object
{p
, name
};
3494 p
.SetMinKeyWidth(23);
3495 p
.PrintKeyBool("imageCompressionControl", static_cast<bool>(obj
.imageCompressionControl
));
3497 void DumpVkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
&obj
) {
3498 ObjectWrapper object
{p
, name
};
3499 p
.SetMinKeyWidth(32);
3500 p
.PrintKeyBool("imageCompressionControlSwapchain", static_cast<bool>(obj
.imageCompressionControlSwapchain
));
3502 void DumpVkPhysicalDeviceImageRobustnessFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceImageRobustnessFeatures
&obj
) {
3503 ObjectWrapper object
{p
, name
};
3504 p
.SetMinKeyWidth(17);
3505 p
.PrintKeyBool("robustImageAccess", static_cast<bool>(obj
.robustImageAccess
));
3507 void DumpVkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT
&obj
) {
3508 ObjectWrapper object
{p
, name
};
3509 p
.SetMinKeyWidth(19);
3510 p
.PrintKeyBool("imageSlicedViewOf3D", static_cast<bool>(obj
.imageSlicedViewOf3D
));
3512 void DumpVkPhysicalDeviceImageViewMinLodFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImageViewMinLodFeaturesEXT
&obj
) {
3513 ObjectWrapper object
{p
, name
};
3514 p
.SetMinKeyWidth(6);
3515 p
.PrintKeyBool("minLod", static_cast<bool>(obj
.minLod
));
3517 void DumpVkPhysicalDeviceImagelessFramebufferFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceImagelessFramebufferFeatures
&obj
) {
3518 ObjectWrapper object
{p
, name
};
3519 p
.SetMinKeyWidth(20);
3520 p
.PrintKeyBool("imagelessFramebuffer", static_cast<bool>(obj
.imagelessFramebuffer
));
3522 void DumpVkPhysicalDeviceIndexTypeUint8Features(Printer
&p
, std::string name
, const VkPhysicalDeviceIndexTypeUint8Features
&obj
) {
3523 ObjectWrapper object
{p
, name
};
3524 p
.SetMinKeyWidth(14);
3525 p
.PrintKeyBool("indexTypeUint8", static_cast<bool>(obj
.indexTypeUint8
));
3527 void DumpVkPhysicalDeviceInlineUniformBlockFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceInlineUniformBlockFeatures
&obj
) {
3528 ObjectWrapper object
{p
, name
};
3529 p
.SetMinKeyWidth(50);
3530 p
.PrintKeyBool("inlineUniformBlock", static_cast<bool>(obj
.inlineUniformBlock
));
3531 p
.PrintKeyBool("descriptorBindingInlineUniformBlockUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingInlineUniformBlockUpdateAfterBind
));
3533 void DumpVkPhysicalDeviceInlineUniformBlockProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceInlineUniformBlockProperties
&obj
) {
3534 ObjectWrapper object
{p
, name
};
3535 p
.SetMinKeyWidth(55);
3536 p
.PrintKeyValue("maxInlineUniformBlockSize", obj
.maxInlineUniformBlockSize
);
3537 p
.PrintKeyValue("maxPerStageDescriptorInlineUniformBlocks", obj
.maxPerStageDescriptorInlineUniformBlocks
);
3538 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks", obj
.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
);
3539 p
.PrintKeyValue("maxDescriptorSetInlineUniformBlocks", obj
.maxDescriptorSetInlineUniformBlocks
);
3540 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindInlineUniformBlocks", obj
.maxDescriptorSetUpdateAfterBindInlineUniformBlocks
);
3542 void DumpVkPhysicalDeviceLayeredApiPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceLayeredApiPropertiesKHR
&obj
) {
3543 ObjectWrapper object
{p
, name
};
3544 p
.SetMinKeyWidth(15);
3545 p
.PrintKeyValue("vendorID", obj
.vendorID
);
3546 p
.PrintKeyValue("deviceID", obj
.deviceID
);
3547 DumpVkPhysicalDeviceLayeredApiKHR(p
, "layeredAPI", obj
.layeredAPI
);
3548 p
.PrintKeyString("deviceName", obj
.deviceName
);
3550 void DumpVkPhysicalDeviceLayeredApiPropertiesListKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceLayeredApiPropertiesListKHR
&obj
) {
3551 ObjectWrapper object
{p
, name
};
3552 p
.SetMinKeyWidth(29);
3553 p
.PrintKeyValue("layeredApiCount", obj
.layeredApiCount
);
3554 if (obj
.layeredApiCount
== 0 || obj
.pLayeredApis
== nullptr) {
3555 p
.PrintKeyString("pLayeredApis", "NULL");
3557 ArrayWrapper
arr(p
,"pLayeredApis", obj
.layeredApiCount
);
3558 for (uint32_t i
= 0; i
< obj
.layeredApiCount
; i
++) {
3559 DumpVkPhysicalDeviceLayeredApiPropertiesKHR(p
, std::to_string(i
), obj
.pLayeredApis
[i
]);
3563 void DumpVkPhysicalDeviceLegacyDitheringFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceLegacyDitheringFeaturesEXT
&obj
) {
3564 ObjectWrapper object
{p
, name
};
3565 p
.SetMinKeyWidth(15);
3566 p
.PrintKeyBool("legacyDithering", static_cast<bool>(obj
.legacyDithering
));
3568 void DumpVkPhysicalDeviceLegacyVertexAttributesFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT
&obj
) {
3569 ObjectWrapper object
{p
, name
};
3570 p
.SetMinKeyWidth(22);
3571 p
.PrintKeyBool("legacyVertexAttributes", static_cast<bool>(obj
.legacyVertexAttributes
));
3573 void DumpVkPhysicalDeviceLegacyVertexAttributesPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT
&obj
) {
3574 ObjectWrapper object
{p
, name
};
3575 p
.SetMinKeyWidth(26);
3576 p
.PrintKeyBool("nativeUnalignedPerformance", static_cast<bool>(obj
.nativeUnalignedPerformance
));
3578 void DumpVkPhysicalDeviceLimits(Printer
&p
, std::string name
, const VkPhysicalDeviceLimits
&obj
) {
3579 if (p
.Type() == OutputType::json
)
3580 p
.ObjectStart("limits");
3582 p
.SetSubHeader().ObjectStart(name
);
3583 p
.SetMinKeyWidth(47);
3584 p
.PrintKeyValue("maxImageDimension1D", obj
.maxImageDimension1D
);
3585 p
.PrintKeyValue("maxImageDimension2D", obj
.maxImageDimension2D
);
3586 p
.PrintKeyValue("maxImageDimension3D", obj
.maxImageDimension3D
);
3587 p
.PrintKeyValue("maxImageDimensionCube", obj
.maxImageDimensionCube
);
3588 p
.PrintKeyValue("maxImageArrayLayers", obj
.maxImageArrayLayers
);
3589 p
.PrintKeyValue("maxTexelBufferElements", obj
.maxTexelBufferElements
);
3590 p
.PrintKeyValue("maxUniformBufferRange", obj
.maxUniformBufferRange
);
3591 p
.PrintKeyValue("maxStorageBufferRange", obj
.maxStorageBufferRange
);
3592 p
.PrintKeyValue("maxPushConstantsSize", obj
.maxPushConstantsSize
);
3593 p
.PrintKeyValue("maxMemoryAllocationCount", obj
.maxMemoryAllocationCount
);
3594 p
.PrintKeyValue("maxSamplerAllocationCount", obj
.maxSamplerAllocationCount
);
3595 p
.PrintKeyValue("bufferImageGranularity", to_hex_str(p
, obj
.bufferImageGranularity
));
3596 p
.PrintKeyValue("sparseAddressSpaceSize", to_hex_str(p
, obj
.sparseAddressSpaceSize
));
3597 p
.PrintKeyValue("maxBoundDescriptorSets", obj
.maxBoundDescriptorSets
);
3598 p
.PrintKeyValue("maxPerStageDescriptorSamplers", obj
.maxPerStageDescriptorSamplers
);
3599 p
.PrintKeyValue("maxPerStageDescriptorUniformBuffers", obj
.maxPerStageDescriptorUniformBuffers
);
3600 p
.PrintKeyValue("maxPerStageDescriptorStorageBuffers", obj
.maxPerStageDescriptorStorageBuffers
);
3601 p
.PrintKeyValue("maxPerStageDescriptorSampledImages", obj
.maxPerStageDescriptorSampledImages
);
3602 p
.PrintKeyValue("maxPerStageDescriptorStorageImages", obj
.maxPerStageDescriptorStorageImages
);
3603 p
.PrintKeyValue("maxPerStageDescriptorInputAttachments", obj
.maxPerStageDescriptorInputAttachments
);
3604 p
.PrintKeyValue("maxPerStageResources", obj
.maxPerStageResources
);
3605 p
.PrintKeyValue("maxDescriptorSetSamplers", obj
.maxDescriptorSetSamplers
);
3606 p
.PrintKeyValue("maxDescriptorSetUniformBuffers", obj
.maxDescriptorSetUniformBuffers
);
3607 p
.PrintKeyValue("maxDescriptorSetUniformBuffersDynamic", obj
.maxDescriptorSetUniformBuffersDynamic
);
3608 p
.PrintKeyValue("maxDescriptorSetStorageBuffers", obj
.maxDescriptorSetStorageBuffers
);
3609 p
.PrintKeyValue("maxDescriptorSetStorageBuffersDynamic", obj
.maxDescriptorSetStorageBuffersDynamic
);
3610 p
.PrintKeyValue("maxDescriptorSetSampledImages", obj
.maxDescriptorSetSampledImages
);
3611 p
.PrintKeyValue("maxDescriptorSetStorageImages", obj
.maxDescriptorSetStorageImages
);
3612 p
.PrintKeyValue("maxDescriptorSetInputAttachments", obj
.maxDescriptorSetInputAttachments
);
3613 p
.PrintKeyValue("maxVertexInputAttributes", obj
.maxVertexInputAttributes
);
3614 p
.PrintKeyValue("maxVertexInputBindings", obj
.maxVertexInputBindings
);
3615 p
.PrintKeyValue("maxVertexInputAttributeOffset", obj
.maxVertexInputAttributeOffset
);
3616 p
.PrintKeyValue("maxVertexInputBindingStride", obj
.maxVertexInputBindingStride
);
3617 p
.PrintKeyValue("maxVertexOutputComponents", obj
.maxVertexOutputComponents
);
3618 p
.PrintKeyValue("maxTessellationGenerationLevel", obj
.maxTessellationGenerationLevel
);
3619 p
.PrintKeyValue("maxTessellationPatchSize", obj
.maxTessellationPatchSize
);
3620 p
.PrintKeyValue("maxTessellationControlPerVertexInputComponents", obj
.maxTessellationControlPerVertexInputComponents
);
3621 p
.PrintKeyValue("maxTessellationControlPerVertexOutputComponents", obj
.maxTessellationControlPerVertexOutputComponents
);
3622 p
.PrintKeyValue("maxTessellationControlPerPatchOutputComponents", obj
.maxTessellationControlPerPatchOutputComponents
);
3623 p
.PrintKeyValue("maxTessellationControlTotalOutputComponents", obj
.maxTessellationControlTotalOutputComponents
);
3624 p
.PrintKeyValue("maxTessellationEvaluationInputComponents", obj
.maxTessellationEvaluationInputComponents
);
3625 p
.PrintKeyValue("maxTessellationEvaluationOutputComponents", obj
.maxTessellationEvaluationOutputComponents
);
3626 p
.PrintKeyValue("maxGeometryShaderInvocations", obj
.maxGeometryShaderInvocations
);
3627 p
.PrintKeyValue("maxGeometryInputComponents", obj
.maxGeometryInputComponents
);
3628 p
.PrintKeyValue("maxGeometryOutputComponents", obj
.maxGeometryOutputComponents
);
3629 p
.PrintKeyValue("maxGeometryOutputVertices", obj
.maxGeometryOutputVertices
);
3630 p
.PrintKeyValue("maxGeometryTotalOutputComponents", obj
.maxGeometryTotalOutputComponents
);
3631 p
.PrintKeyValue("maxFragmentInputComponents", obj
.maxFragmentInputComponents
);
3632 p
.PrintKeyValue("maxFragmentOutputAttachments", obj
.maxFragmentOutputAttachments
);
3633 p
.PrintKeyValue("maxFragmentDualSrcAttachments", obj
.maxFragmentDualSrcAttachments
);
3634 p
.PrintKeyValue("maxFragmentCombinedOutputResources", obj
.maxFragmentCombinedOutputResources
);
3635 p
.PrintKeyValue("maxComputeSharedMemorySize", obj
.maxComputeSharedMemorySize
);
3637 ArrayWrapper
arr(p
,"maxComputeWorkGroupCount", 3);
3638 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxComputeWorkGroupCount
[i
]); }
3640 p
.PrintKeyValue("maxComputeWorkGroupInvocations", obj
.maxComputeWorkGroupInvocations
);
3642 ArrayWrapper
arr(p
,"maxComputeWorkGroupSize", 3);
3643 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxComputeWorkGroupSize
[i
]); }
3645 p
.PrintKeyValue("subPixelPrecisionBits", obj
.subPixelPrecisionBits
);
3646 p
.PrintKeyValue("subTexelPrecisionBits", obj
.subTexelPrecisionBits
);
3647 p
.PrintKeyValue("mipmapPrecisionBits", obj
.mipmapPrecisionBits
);
3648 p
.PrintKeyValue("maxDrawIndexedIndexValue", obj
.maxDrawIndexedIndexValue
);
3649 p
.PrintKeyValue("maxDrawIndirectCount", obj
.maxDrawIndirectCount
);
3650 p
.PrintKeyValue("maxSamplerLodBias", obj
.maxSamplerLodBias
);
3651 p
.PrintKeyValue("maxSamplerAnisotropy", obj
.maxSamplerAnisotropy
);
3652 p
.PrintKeyValue("maxViewports", obj
.maxViewports
);
3654 ArrayWrapper
arr(p
,"maxViewportDimensions", 2);
3655 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.maxViewportDimensions
[i
]); }
3658 ArrayWrapper
arr(p
,"viewportBoundsRange", 2);
3659 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.viewportBoundsRange
[i
]); }
3661 p
.PrintKeyValue("viewportSubPixelBits", obj
.viewportSubPixelBits
);
3662 p
.PrintKeyValue("minMemoryMapAlignment", obj
.minMemoryMapAlignment
);
3663 p
.PrintKeyValue("minTexelBufferOffsetAlignment", to_hex_str(p
, obj
.minTexelBufferOffsetAlignment
));
3664 p
.PrintKeyValue("minUniformBufferOffsetAlignment", to_hex_str(p
, obj
.minUniformBufferOffsetAlignment
));
3665 p
.PrintKeyValue("minStorageBufferOffsetAlignment", to_hex_str(p
, obj
.minStorageBufferOffsetAlignment
));
3666 p
.PrintKeyValue("minTexelOffset", obj
.minTexelOffset
);
3667 p
.PrintKeyValue("maxTexelOffset", obj
.maxTexelOffset
);
3668 p
.PrintKeyValue("minTexelGatherOffset", obj
.minTexelGatherOffset
);
3669 p
.PrintKeyValue("maxTexelGatherOffset", obj
.maxTexelGatherOffset
);
3670 p
.PrintKeyValue("minInterpolationOffset", obj
.minInterpolationOffset
);
3671 p
.PrintKeyValue("maxInterpolationOffset", obj
.maxInterpolationOffset
);
3672 p
.PrintKeyValue("subPixelInterpolationOffsetBits", obj
.subPixelInterpolationOffsetBits
);
3673 p
.PrintKeyValue("maxFramebufferWidth", obj
.maxFramebufferWidth
);
3674 p
.PrintKeyValue("maxFramebufferHeight", obj
.maxFramebufferHeight
);
3675 p
.PrintKeyValue("maxFramebufferLayers", obj
.maxFramebufferLayers
);
3676 DumpVkSampleCountFlags(p
, "framebufferColorSampleCounts", obj
.framebufferColorSampleCounts
);
3677 DumpVkSampleCountFlags(p
, "framebufferDepthSampleCounts", obj
.framebufferDepthSampleCounts
);
3678 DumpVkSampleCountFlags(p
, "framebufferStencilSampleCounts", obj
.framebufferStencilSampleCounts
);
3679 DumpVkSampleCountFlags(p
, "framebufferNoAttachmentsSampleCounts", obj
.framebufferNoAttachmentsSampleCounts
);
3680 p
.PrintKeyValue("maxColorAttachments", obj
.maxColorAttachments
);
3681 DumpVkSampleCountFlags(p
, "sampledImageColorSampleCounts", obj
.sampledImageColorSampleCounts
);
3682 DumpVkSampleCountFlags(p
, "sampledImageIntegerSampleCounts", obj
.sampledImageIntegerSampleCounts
);
3683 DumpVkSampleCountFlags(p
, "sampledImageDepthSampleCounts", obj
.sampledImageDepthSampleCounts
);
3684 DumpVkSampleCountFlags(p
, "sampledImageStencilSampleCounts", obj
.sampledImageStencilSampleCounts
);
3685 DumpVkSampleCountFlags(p
, "storageImageSampleCounts", obj
.storageImageSampleCounts
);
3686 p
.PrintKeyValue("maxSampleMaskWords", obj
.maxSampleMaskWords
);
3687 p
.PrintKeyBool("timestampComputeAndGraphics", static_cast<bool>(obj
.timestampComputeAndGraphics
));
3688 p
.PrintKeyValue("timestampPeriod", obj
.timestampPeriod
);
3689 p
.PrintKeyValue("maxClipDistances", obj
.maxClipDistances
);
3690 p
.PrintKeyValue("maxCullDistances", obj
.maxCullDistances
);
3691 p
.PrintKeyValue("maxCombinedClipAndCullDistances", obj
.maxCombinedClipAndCullDistances
);
3692 p
.PrintKeyValue("discreteQueuePriorities", obj
.discreteQueuePriorities
);
3694 ArrayWrapper
arr(p
,"pointSizeRange", 2);
3695 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.pointSizeRange
[i
]); }
3698 ArrayWrapper
arr(p
,"lineWidthRange", 2);
3699 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.lineWidthRange
[i
]); }
3701 p
.PrintKeyValue("pointSizeGranularity", obj
.pointSizeGranularity
);
3702 p
.PrintKeyValue("lineWidthGranularity", obj
.lineWidthGranularity
);
3703 p
.PrintKeyBool("strictLines", static_cast<bool>(obj
.strictLines
));
3704 p
.PrintKeyBool("standardSampleLocations", static_cast<bool>(obj
.standardSampleLocations
));
3705 p
.PrintKeyValue("optimalBufferCopyOffsetAlignment", to_hex_str(p
, obj
.optimalBufferCopyOffsetAlignment
));
3706 p
.PrintKeyValue("optimalBufferCopyRowPitchAlignment", to_hex_str(p
, obj
.optimalBufferCopyRowPitchAlignment
));
3707 p
.PrintKeyValue("nonCoherentAtomSize", to_hex_str(p
, obj
.nonCoherentAtomSize
));
3710 void DumpVkPhysicalDeviceLineRasterizationFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceLineRasterizationFeatures
&obj
) {
3711 ObjectWrapper object
{p
, name
};
3712 p
.SetMinKeyWidth(24);
3713 p
.PrintKeyBool("rectangularLines", static_cast<bool>(obj
.rectangularLines
));
3714 p
.PrintKeyBool("bresenhamLines", static_cast<bool>(obj
.bresenhamLines
));
3715 p
.PrintKeyBool("smoothLines", static_cast<bool>(obj
.smoothLines
));
3716 p
.PrintKeyBool("stippledRectangularLines", static_cast<bool>(obj
.stippledRectangularLines
));
3717 p
.PrintKeyBool("stippledBresenhamLines", static_cast<bool>(obj
.stippledBresenhamLines
));
3718 p
.PrintKeyBool("stippledSmoothLines", static_cast<bool>(obj
.stippledSmoothLines
));
3720 void DumpVkPhysicalDeviceLineRasterizationProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceLineRasterizationProperties
&obj
) {
3721 ObjectWrapper object
{p
, name
};
3722 p
.SetMinKeyWidth(25);
3723 p
.PrintKeyValue("lineSubPixelPrecisionBits", obj
.lineSubPixelPrecisionBits
);
3725 void DumpVkPhysicalDeviceMaintenance3Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance3Properties
&obj
) {
3726 ObjectWrapper object
{p
, name
};
3727 p
.SetMinKeyWidth(23);
3728 p
.PrintKeyValue("maxPerSetDescriptors", obj
.maxPerSetDescriptors
);
3729 p
.PrintKeyValue("maxMemoryAllocationSize", to_hex_str(p
, obj
.maxMemoryAllocationSize
));
3731 void DumpVkPhysicalDeviceMaintenance4Features(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance4Features
&obj
) {
3732 ObjectWrapper object
{p
, name
};
3733 p
.SetMinKeyWidth(12);
3734 p
.PrintKeyBool("maintenance4", static_cast<bool>(obj
.maintenance4
));
3736 void DumpVkPhysicalDeviceMaintenance4Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance4Properties
&obj
) {
3737 ObjectWrapper object
{p
, name
};
3738 p
.SetMinKeyWidth(13);
3739 p
.PrintKeyValue("maxBufferSize", to_hex_str(p
, obj
.maxBufferSize
));
3741 void DumpVkPhysicalDeviceMaintenance5Features(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance5Features
&obj
) {
3742 ObjectWrapper object
{p
, name
};
3743 p
.SetMinKeyWidth(12);
3744 p
.PrintKeyBool("maintenance5", static_cast<bool>(obj
.maintenance5
));
3746 void DumpVkPhysicalDeviceMaintenance5Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance5Properties
&obj
) {
3747 ObjectWrapper object
{p
, name
};
3748 p
.SetMinKeyWidth(51);
3749 p
.PrintKeyBool("earlyFragmentMultisampleCoverageAfterSampleCounting", static_cast<bool>(obj
.earlyFragmentMultisampleCoverageAfterSampleCounting
));
3750 p
.PrintKeyBool("earlyFragmentSampleMaskTestBeforeSampleCounting", static_cast<bool>(obj
.earlyFragmentSampleMaskTestBeforeSampleCounting
));
3751 p
.PrintKeyBool("depthStencilSwizzleOneSupport", static_cast<bool>(obj
.depthStencilSwizzleOneSupport
));
3752 p
.PrintKeyBool("polygonModePointSize", static_cast<bool>(obj
.polygonModePointSize
));
3753 p
.PrintKeyBool("nonStrictSinglePixelWideLinesUseParallelogram", static_cast<bool>(obj
.nonStrictSinglePixelWideLinesUseParallelogram
));
3754 p
.PrintKeyBool("nonStrictWideLinesUseParallelogram", static_cast<bool>(obj
.nonStrictWideLinesUseParallelogram
));
3756 void DumpVkPhysicalDeviceMaintenance6Features(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance6Features
&obj
) {
3757 ObjectWrapper object
{p
, name
};
3758 p
.SetMinKeyWidth(12);
3759 p
.PrintKeyBool("maintenance6", static_cast<bool>(obj
.maintenance6
));
3761 void DumpVkPhysicalDeviceMaintenance6Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance6Properties
&obj
) {
3762 ObjectWrapper object
{p
, name
};
3763 p
.SetMinKeyWidth(38);
3764 p
.PrintKeyBool("blockTexelViewCompatibleMultipleLayers", static_cast<bool>(obj
.blockTexelViewCompatibleMultipleLayers
));
3765 p
.PrintKeyValue("maxCombinedImageSamplerDescriptorCount", obj
.maxCombinedImageSamplerDescriptorCount
);
3766 p
.PrintKeyBool("fragmentShadingRateClampCombinerInputs", static_cast<bool>(obj
.fragmentShadingRateClampCombinerInputs
));
3768 void DumpVkPhysicalDeviceMaintenance7FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance7FeaturesKHR
&obj
) {
3769 ObjectWrapper object
{p
, name
};
3770 p
.SetMinKeyWidth(12);
3771 p
.PrintKeyBool("maintenance7", static_cast<bool>(obj
.maintenance7
));
3773 void DumpVkPhysicalDeviceMaintenance7PropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance7PropertiesKHR
&obj
) {
3774 ObjectWrapper object
{p
, name
};
3775 p
.SetMinKeyWidth(57);
3776 p
.PrintKeyBool("robustFragmentShadingRateAttachmentAccess", static_cast<bool>(obj
.robustFragmentShadingRateAttachmentAccess
));
3777 p
.PrintKeyBool("separateDepthStencilAttachmentAccess", static_cast<bool>(obj
.separateDepthStencilAttachmentAccess
));
3778 p
.PrintKeyValue("maxDescriptorSetTotalUniformBuffersDynamic", obj
.maxDescriptorSetTotalUniformBuffersDynamic
);
3779 p
.PrintKeyValue("maxDescriptorSetTotalStorageBuffersDynamic", obj
.maxDescriptorSetTotalStorageBuffersDynamic
);
3780 p
.PrintKeyValue("maxDescriptorSetTotalBuffersDynamic", obj
.maxDescriptorSetTotalBuffersDynamic
);
3781 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic
);
3782 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic
);
3783 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindTotalBuffersDynamic
);
3785 void DumpVkPhysicalDeviceMaintenance8FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance8FeaturesKHR
&obj
) {
3786 ObjectWrapper object
{p
, name
};
3787 p
.SetMinKeyWidth(12);
3788 p
.PrintKeyBool("maintenance8", static_cast<bool>(obj
.maintenance8
));
3790 void DumpVkPhysicalDeviceMapMemoryPlacedFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMapMemoryPlacedFeaturesEXT
&obj
) {
3791 ObjectWrapper object
{p
, name
};
3792 p
.SetMinKeyWidth(20);
3793 p
.PrintKeyBool("memoryMapPlaced", static_cast<bool>(obj
.memoryMapPlaced
));
3794 p
.PrintKeyBool("memoryMapRangePlaced", static_cast<bool>(obj
.memoryMapRangePlaced
));
3795 p
.PrintKeyBool("memoryUnmapReserve", static_cast<bool>(obj
.memoryUnmapReserve
));
3797 void DumpVkPhysicalDeviceMapMemoryPlacedPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMapMemoryPlacedPropertiesEXT
&obj
) {
3798 ObjectWrapper object
{p
, name
};
3799 p
.SetMinKeyWidth(27);
3800 p
.PrintKeyValue("minPlacedMemoryMapAlignment", to_hex_str(p
, obj
.minPlacedMemoryMapAlignment
));
3802 void DumpVkPhysicalDeviceMemoryBudgetPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMemoryBudgetPropertiesEXT
&obj
) {
3803 ObjectWrapper object
{p
, name
};
3804 p
.SetMinKeyWidth(14);
3806 ArrayWrapper
arr(p
,"heapBudget", 16);
3807 for (uint32_t i
= 0; i
< 16; i
++) { p
.PrintElement(obj
.heapBudget
[i
]); }
3810 ArrayWrapper
arr(p
,"heapUsage", 16);
3811 for (uint32_t i
= 0; i
< 16; i
++) { p
.PrintElement(obj
.heapUsage
[i
]); }
3814 void DumpVkPhysicalDeviceMemoryPriorityFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMemoryPriorityFeaturesEXT
&obj
) {
3815 ObjectWrapper object
{p
, name
};
3816 p
.SetMinKeyWidth(14);
3817 p
.PrintKeyBool("memoryPriority", static_cast<bool>(obj
.memoryPriority
));
3819 void DumpVkPhysicalDeviceMeshShaderFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMeshShaderFeaturesEXT
&obj
) {
3820 ObjectWrapper object
{p
, name
};
3821 p
.SetMinKeyWidth(38);
3822 p
.PrintKeyBool("taskShader", static_cast<bool>(obj
.taskShader
));
3823 p
.PrintKeyBool("meshShader", static_cast<bool>(obj
.meshShader
));
3824 p
.PrintKeyBool("multiviewMeshShader", static_cast<bool>(obj
.multiviewMeshShader
));
3825 p
.PrintKeyBool("primitiveFragmentShadingRateMeshShader", static_cast<bool>(obj
.primitiveFragmentShadingRateMeshShader
));
3826 p
.PrintKeyBool("meshShaderQueries", static_cast<bool>(obj
.meshShaderQueries
));
3828 void DumpVkPhysicalDeviceMeshShaderPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMeshShaderPropertiesEXT
&obj
) {
3829 ObjectWrapper object
{p
, name
};
3830 p
.SetMinKeyWidth(37);
3831 p
.PrintKeyValue("maxTaskWorkGroupTotalCount", obj
.maxTaskWorkGroupTotalCount
);
3833 ArrayWrapper
arr(p
,"maxTaskWorkGroupCount", 3);
3834 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxTaskWorkGroupCount
[i
]); }
3836 p
.PrintKeyValue("maxTaskWorkGroupInvocations", obj
.maxTaskWorkGroupInvocations
);
3838 ArrayWrapper
arr(p
,"maxTaskWorkGroupSize", 3);
3839 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxTaskWorkGroupSize
[i
]); }
3841 p
.PrintKeyValue("maxTaskPayloadSize", obj
.maxTaskPayloadSize
);
3842 p
.PrintKeyValue("maxTaskSharedMemorySize", obj
.maxTaskSharedMemorySize
);
3843 p
.PrintKeyValue("maxTaskPayloadAndSharedMemorySize", obj
.maxTaskPayloadAndSharedMemorySize
);
3844 p
.PrintKeyValue("maxMeshWorkGroupTotalCount", obj
.maxMeshWorkGroupTotalCount
);
3846 ArrayWrapper
arr(p
,"maxMeshWorkGroupCount", 3);
3847 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxMeshWorkGroupCount
[i
]); }
3849 p
.PrintKeyValue("maxMeshWorkGroupInvocations", obj
.maxMeshWorkGroupInvocations
);
3851 ArrayWrapper
arr(p
,"maxMeshWorkGroupSize", 3);
3852 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxMeshWorkGroupSize
[i
]); }
3854 p
.PrintKeyValue("maxMeshSharedMemorySize", obj
.maxMeshSharedMemorySize
);
3855 p
.PrintKeyValue("maxMeshPayloadAndSharedMemorySize", obj
.maxMeshPayloadAndSharedMemorySize
);
3856 p
.PrintKeyValue("maxMeshOutputMemorySize", obj
.maxMeshOutputMemorySize
);
3857 p
.PrintKeyValue("maxMeshPayloadAndOutputMemorySize", obj
.maxMeshPayloadAndOutputMemorySize
);
3858 p
.PrintKeyValue("maxMeshOutputComponents", obj
.maxMeshOutputComponents
);
3859 p
.PrintKeyValue("maxMeshOutputVertices", obj
.maxMeshOutputVertices
);
3860 p
.PrintKeyValue("maxMeshOutputPrimitives", obj
.maxMeshOutputPrimitives
);
3861 p
.PrintKeyValue("maxMeshOutputLayers", obj
.maxMeshOutputLayers
);
3862 p
.PrintKeyValue("maxMeshMultiviewViewCount", obj
.maxMeshMultiviewViewCount
);
3863 p
.PrintKeyValue("meshOutputPerVertexGranularity", obj
.meshOutputPerVertexGranularity
);
3864 p
.PrintKeyValue("meshOutputPerPrimitiveGranularity", obj
.meshOutputPerPrimitiveGranularity
);
3865 p
.PrintKeyValue("maxPreferredTaskWorkGroupInvocations", obj
.maxPreferredTaskWorkGroupInvocations
);
3866 p
.PrintKeyValue("maxPreferredMeshWorkGroupInvocations", obj
.maxPreferredMeshWorkGroupInvocations
);
3867 p
.PrintKeyBool("prefersLocalInvocationVertexOutput", static_cast<bool>(obj
.prefersLocalInvocationVertexOutput
));
3868 p
.PrintKeyBool("prefersLocalInvocationPrimitiveOutput", static_cast<bool>(obj
.prefersLocalInvocationPrimitiveOutput
));
3869 p
.PrintKeyBool("prefersCompactVertexOutput", static_cast<bool>(obj
.prefersCompactVertexOutput
));
3870 p
.PrintKeyBool("prefersCompactPrimitiveOutput", static_cast<bool>(obj
.prefersCompactPrimitiveOutput
));
3872 void DumpVkPhysicalDeviceMultiDrawFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMultiDrawFeaturesEXT
&obj
) {
3873 ObjectWrapper object
{p
, name
};
3874 p
.SetMinKeyWidth(9);
3875 p
.PrintKeyBool("multiDraw", static_cast<bool>(obj
.multiDraw
));
3877 void DumpVkPhysicalDeviceMultiDrawPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMultiDrawPropertiesEXT
&obj
) {
3878 ObjectWrapper object
{p
, name
};
3879 p
.SetMinKeyWidth(17);
3880 p
.PrintKeyValue("maxMultiDrawCount", obj
.maxMultiDrawCount
);
3882 void DumpVkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
&obj
) {
3883 ObjectWrapper object
{p
, name
};
3884 p
.SetMinKeyWidth(33);
3885 p
.PrintKeyBool("multisampledRenderToSingleSampled", static_cast<bool>(obj
.multisampledRenderToSingleSampled
));
3887 void DumpVkPhysicalDeviceMultiviewFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceMultiviewFeatures
&obj
) {
3888 ObjectWrapper object
{p
, name
};
3889 p
.SetMinKeyWidth(27);
3890 p
.PrintKeyBool("multiview", static_cast<bool>(obj
.multiview
));
3891 p
.PrintKeyBool("multiviewGeometryShader", static_cast<bool>(obj
.multiviewGeometryShader
));
3892 p
.PrintKeyBool("multiviewTessellationShader", static_cast<bool>(obj
.multiviewTessellationShader
));
3894 void DumpVkPhysicalDeviceMultiviewProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceMultiviewProperties
&obj
) {
3895 ObjectWrapper object
{p
, name
};
3896 p
.SetMinKeyWidth(25);
3897 p
.PrintKeyValue("maxMultiviewViewCount", obj
.maxMultiviewViewCount
);
3898 p
.PrintKeyValue("maxMultiviewInstanceIndex", obj
.maxMultiviewInstanceIndex
);
3900 void DumpVkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT
&obj
) {
3901 ObjectWrapper object
{p
, name
};
3902 p
.SetMinKeyWidth(21);
3903 p
.PrintKeyBool("mutableDescriptorType", static_cast<bool>(obj
.mutableDescriptorType
));
3905 void DumpVkPhysicalDeviceNestedCommandBufferFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceNestedCommandBufferFeaturesEXT
&obj
) {
3906 ObjectWrapper object
{p
, name
};
3907 p
.SetMinKeyWidth(34);
3908 p
.PrintKeyBool("nestedCommandBuffer", static_cast<bool>(obj
.nestedCommandBuffer
));
3909 p
.PrintKeyBool("nestedCommandBufferRendering", static_cast<bool>(obj
.nestedCommandBufferRendering
));
3910 p
.PrintKeyBool("nestedCommandBufferSimultaneousUse", static_cast<bool>(obj
.nestedCommandBufferSimultaneousUse
));
3912 void DumpVkPhysicalDeviceNestedCommandBufferPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceNestedCommandBufferPropertiesEXT
&obj
) {
3913 ObjectWrapper object
{p
, name
};
3914 p
.SetMinKeyWidth(28);
3915 p
.PrintKeyValue("maxCommandBufferNestingLevel", obj
.maxCommandBufferNestingLevel
);
3917 void DumpVkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
&obj
) {
3918 ObjectWrapper object
{p
, name
};
3919 p
.SetMinKeyWidth(18);
3920 p
.PrintKeyBool("nonSeamlessCubeMap", static_cast<bool>(obj
.nonSeamlessCubeMap
));
3922 void DumpVkPhysicalDeviceOpacityMicromapFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceOpacityMicromapFeaturesEXT
&obj
) {
3923 ObjectWrapper object
{p
, name
};
3924 p
.SetMinKeyWidth(21);
3925 p
.PrintKeyBool("micromap", static_cast<bool>(obj
.micromap
));
3926 p
.PrintKeyBool("micromapCaptureReplay", static_cast<bool>(obj
.micromapCaptureReplay
));
3927 p
.PrintKeyBool("micromapHostCommands", static_cast<bool>(obj
.micromapHostCommands
));
3929 void DumpVkPhysicalDeviceOpacityMicromapPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceOpacityMicromapPropertiesEXT
&obj
) {
3930 ObjectWrapper object
{p
, name
};
3931 p
.SetMinKeyWidth(32);
3932 p
.PrintKeyValue("maxOpacity2StateSubdivisionLevel", obj
.maxOpacity2StateSubdivisionLevel
);
3933 p
.PrintKeyValue("maxOpacity4StateSubdivisionLevel", obj
.maxOpacity4StateSubdivisionLevel
);
3935 void DumpVkPhysicalDevicePCIBusInfoPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePCIBusInfoPropertiesEXT
&obj
) {
3936 ObjectWrapper object
{p
, name
};
3937 p
.SetMinKeyWidth(11);
3938 p
.PrintKeyValue("pciDomain", obj
.pciDomain
);
3939 p
.PrintKeyValue("pciBus", obj
.pciBus
);
3940 p
.PrintKeyValue("pciDevice", obj
.pciDevice
);
3941 p
.PrintKeyValue("pciFunction", obj
.pciFunction
);
3943 void DumpVkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
&obj
) {
3944 ObjectWrapper object
{p
, name
};
3945 p
.SetMinKeyWidth(25);
3946 p
.PrintKeyBool("pageableDeviceLocalMemory", static_cast<bool>(obj
.pageableDeviceLocalMemory
));
3948 void DumpVkPhysicalDevicePerformanceQueryFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePerformanceQueryFeaturesKHR
&obj
) {
3949 ObjectWrapper object
{p
, name
};
3950 p
.SetMinKeyWidth(36);
3951 p
.PrintKeyBool("performanceCounterQueryPools", static_cast<bool>(obj
.performanceCounterQueryPools
));
3952 p
.PrintKeyBool("performanceCounterMultipleQueryPools", static_cast<bool>(obj
.performanceCounterMultipleQueryPools
));
3954 void DumpVkPhysicalDevicePerformanceQueryPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePerformanceQueryPropertiesKHR
&obj
) {
3955 ObjectWrapper object
{p
, name
};
3956 p
.SetMinKeyWidth(29);
3957 p
.PrintKeyBool("allowCommandBufferQueryCopies", static_cast<bool>(obj
.allowCommandBufferQueryCopies
));
3959 void DumpVkPhysicalDevicePipelineBinaryFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineBinaryFeaturesKHR
&obj
) {
3960 ObjectWrapper object
{p
, name
};
3961 p
.SetMinKeyWidth(16);
3962 p
.PrintKeyBool("pipelineBinaries", static_cast<bool>(obj
.pipelineBinaries
));
3964 void DumpVkPhysicalDevicePipelineBinaryPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineBinaryPropertiesKHR
&obj
) {
3965 ObjectWrapper object
{p
, name
};
3966 p
.SetMinKeyWidth(38);
3967 p
.PrintKeyBool("pipelineBinaryInternalCache", static_cast<bool>(obj
.pipelineBinaryInternalCache
));
3968 p
.PrintKeyBool("pipelineBinaryInternalCacheControl", static_cast<bool>(obj
.pipelineBinaryInternalCacheControl
));
3969 p
.PrintKeyBool("pipelineBinaryPrefersInternalCache", static_cast<bool>(obj
.pipelineBinaryPrefersInternalCache
));
3970 p
.PrintKeyBool("pipelineBinaryPrecompiledInternalCache", static_cast<bool>(obj
.pipelineBinaryPrecompiledInternalCache
));
3971 p
.PrintKeyBool("pipelineBinaryCompressedData", static_cast<bool>(obj
.pipelineBinaryCompressedData
));
3973 void DumpVkPhysicalDevicePipelineCreationCacheControlFeatures(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineCreationCacheControlFeatures
&obj
) {
3974 ObjectWrapper object
{p
, name
};
3975 p
.SetMinKeyWidth(28);
3976 p
.PrintKeyBool("pipelineCreationCacheControl", static_cast<bool>(obj
.pipelineCreationCacheControl
));
3978 void DumpVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
&obj
) {
3979 ObjectWrapper object
{p
, name
};
3980 p
.SetMinKeyWidth(22);
3981 p
.PrintKeyBool("pipelineExecutableInfo", static_cast<bool>(obj
.pipelineExecutableInfo
));
3983 void DumpVkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
&obj
) {
3984 ObjectWrapper object
{p
, name
};
3985 p
.SetMinKeyWidth(27);
3986 p
.PrintKeyBool("pipelineLibraryGroupHandles", static_cast<bool>(obj
.pipelineLibraryGroupHandles
));
3988 void DumpVkPhysicalDevicePipelinePropertiesFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePipelinePropertiesFeaturesEXT
&obj
) {
3989 ObjectWrapper object
{p
, name
};
3990 p
.SetMinKeyWidth(28);
3991 p
.PrintKeyBool("pipelinePropertiesIdentifier", static_cast<bool>(obj
.pipelinePropertiesIdentifier
));
3993 void DumpVkPhysicalDevicePipelineProtectedAccessFeatures(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineProtectedAccessFeatures
&obj
) {
3994 ObjectWrapper object
{p
, name
};
3995 p
.SetMinKeyWidth(23);
3996 p
.PrintKeyBool("pipelineProtectedAccess", static_cast<bool>(obj
.pipelineProtectedAccess
));
3998 void DumpVkPhysicalDevicePipelineRobustnessFeatures(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineRobustnessFeatures
&obj
) {
3999 ObjectWrapper object
{p
, name
};
4000 p
.SetMinKeyWidth(18);
4001 p
.PrintKeyBool("pipelineRobustness", static_cast<bool>(obj
.pipelineRobustness
));
4003 void DumpVkPhysicalDevicePipelineRobustnessProperties(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineRobustnessProperties
&obj
) {
4004 ObjectWrapper object
{p
, name
};
4005 DumpVkPipelineRobustnessBufferBehavior(p
, "defaultRobustnessStorageBuffers", obj
.defaultRobustnessStorageBuffers
);
4006 DumpVkPipelineRobustnessBufferBehavior(p
, "defaultRobustnessUniformBuffers", obj
.defaultRobustnessUniformBuffers
);
4007 DumpVkPipelineRobustnessBufferBehavior(p
, "defaultRobustnessVertexInputs", obj
.defaultRobustnessVertexInputs
);
4008 DumpVkPipelineRobustnessImageBehavior(p
, "defaultRobustnessImages", obj
.defaultRobustnessImages
);
4010 void DumpVkPhysicalDevicePointClippingProperties(Printer
&p
, std::string name
, const VkPhysicalDevicePointClippingProperties
&obj
) {
4011 ObjectWrapper object
{p
, name
};
4012 DumpVkPointClippingBehavior(p
, "pointClippingBehavior", obj
.pointClippingBehavior
);
4014 #ifdef VK_ENABLE_BETA_EXTENSIONS
4015 void DumpVkPhysicalDevicePortabilitySubsetFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePortabilitySubsetFeaturesKHR
&obj
) {
4016 ObjectWrapper object
{p
, name
};
4017 p
.SetMinKeyWidth(38);
4018 p
.PrintKeyBool("constantAlphaColorBlendFactors", static_cast<bool>(obj
.constantAlphaColorBlendFactors
));
4019 p
.PrintKeyBool("events", static_cast<bool>(obj
.events
));
4020 p
.PrintKeyBool("imageViewFormatReinterpretation", static_cast<bool>(obj
.imageViewFormatReinterpretation
));
4021 p
.PrintKeyBool("imageViewFormatSwizzle", static_cast<bool>(obj
.imageViewFormatSwizzle
));
4022 p
.PrintKeyBool("imageView2DOn3DImage", static_cast<bool>(obj
.imageView2DOn3DImage
));
4023 p
.PrintKeyBool("multisampleArrayImage", static_cast<bool>(obj
.multisampleArrayImage
));
4024 p
.PrintKeyBool("mutableComparisonSamplers", static_cast<bool>(obj
.mutableComparisonSamplers
));
4025 p
.PrintKeyBool("pointPolygons", static_cast<bool>(obj
.pointPolygons
));
4026 p
.PrintKeyBool("samplerMipLodBias", static_cast<bool>(obj
.samplerMipLodBias
));
4027 p
.PrintKeyBool("separateStencilMaskRef", static_cast<bool>(obj
.separateStencilMaskRef
));
4028 p
.PrintKeyBool("shaderSampleRateInterpolationFunctions", static_cast<bool>(obj
.shaderSampleRateInterpolationFunctions
));
4029 p
.PrintKeyBool("tessellationIsolines", static_cast<bool>(obj
.tessellationIsolines
));
4030 p
.PrintKeyBool("tessellationPointMode", static_cast<bool>(obj
.tessellationPointMode
));
4031 p
.PrintKeyBool("triangleFans", static_cast<bool>(obj
.triangleFans
));
4032 p
.PrintKeyBool("vertexAttributeAccessBeyondStride", static_cast<bool>(obj
.vertexAttributeAccessBeyondStride
));
4034 #endif // VK_ENABLE_BETA_EXTENSIONS
4035 #ifdef VK_ENABLE_BETA_EXTENSIONS
4036 void DumpVkPhysicalDevicePortabilitySubsetPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePortabilitySubsetPropertiesKHR
&obj
) {
4037 ObjectWrapper object
{p
, name
};
4038 p
.SetMinKeyWidth(36);
4039 p
.PrintKeyValue("minVertexInputBindingStrideAlignment", obj
.minVertexInputBindingStrideAlignment
);
4041 #endif // VK_ENABLE_BETA_EXTENSIONS
4042 void DumpVkPhysicalDevicePresentIdFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePresentIdFeaturesKHR
&obj
) {
4043 ObjectWrapper object
{p
, name
};
4044 p
.SetMinKeyWidth(9);
4045 p
.PrintKeyBool("presentId", static_cast<bool>(obj
.presentId
));
4047 void DumpVkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
&obj
) {
4048 ObjectWrapper object
{p
, name
};
4049 p
.SetMinKeyWidth(26);
4050 p
.PrintKeyBool("presentModeFifoLatestReady", static_cast<bool>(obj
.presentModeFifoLatestReady
));
4052 void DumpVkPhysicalDevicePresentWaitFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePresentWaitFeaturesKHR
&obj
) {
4053 ObjectWrapper object
{p
, name
};
4054 p
.SetMinKeyWidth(11);
4055 p
.PrintKeyBool("presentWait", static_cast<bool>(obj
.presentWait
));
4057 void DumpVkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
&obj
) {
4058 ObjectWrapper object
{p
, name
};
4059 p
.SetMinKeyWidth(33);
4060 p
.PrintKeyBool("primitiveTopologyListRestart", static_cast<bool>(obj
.primitiveTopologyListRestart
));
4061 p
.PrintKeyBool("primitiveTopologyPatchListRestart", static_cast<bool>(obj
.primitiveTopologyPatchListRestart
));
4063 void DumpVkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
&obj
) {
4064 ObjectWrapper object
{p
, name
};
4065 p
.SetMinKeyWidth(45);
4066 p
.PrintKeyBool("primitivesGeneratedQuery", static_cast<bool>(obj
.primitivesGeneratedQuery
));
4067 p
.PrintKeyBool("primitivesGeneratedQueryWithRasterizerDiscard", static_cast<bool>(obj
.primitivesGeneratedQueryWithRasterizerDiscard
));
4068 p
.PrintKeyBool("primitivesGeneratedQueryWithNonZeroStreams", static_cast<bool>(obj
.primitivesGeneratedQueryWithNonZeroStreams
));
4070 void DumpVkPhysicalDevicePrivateDataFeatures(Printer
&p
, std::string name
, const VkPhysicalDevicePrivateDataFeatures
&obj
) {
4071 ObjectWrapper object
{p
, name
};
4072 p
.SetMinKeyWidth(11);
4073 p
.PrintKeyBool("privateData", static_cast<bool>(obj
.privateData
));
4075 void DumpVkPhysicalDeviceProtectedMemoryFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceProtectedMemoryFeatures
&obj
) {
4076 ObjectWrapper object
{p
, name
};
4077 p
.SetMinKeyWidth(15);
4078 p
.PrintKeyBool("protectedMemory", static_cast<bool>(obj
.protectedMemory
));
4080 void DumpVkPhysicalDeviceProtectedMemoryProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceProtectedMemoryProperties
&obj
) {
4081 ObjectWrapper object
{p
, name
};
4082 p
.SetMinKeyWidth(16);
4083 p
.PrintKeyBool("protectedNoFault", static_cast<bool>(obj
.protectedNoFault
));
4085 void DumpVkPhysicalDeviceProvokingVertexFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceProvokingVertexFeaturesEXT
&obj
) {
4086 ObjectWrapper object
{p
, name
};
4087 p
.SetMinKeyWidth(41);
4088 p
.PrintKeyBool("provokingVertexLast", static_cast<bool>(obj
.provokingVertexLast
));
4089 p
.PrintKeyBool("transformFeedbackPreservesProvokingVertex", static_cast<bool>(obj
.transformFeedbackPreservesProvokingVertex
));
4091 void DumpVkPhysicalDeviceProvokingVertexPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceProvokingVertexPropertiesEXT
&obj
) {
4092 ObjectWrapper object
{p
, name
};
4093 p
.SetMinKeyWidth(52);
4094 p
.PrintKeyBool("provokingVertexModePerPipeline", static_cast<bool>(obj
.provokingVertexModePerPipeline
));
4095 p
.PrintKeyBool("transformFeedbackPreservesTriangleFanProvokingVertex", static_cast<bool>(obj
.transformFeedbackPreservesTriangleFanProvokingVertex
));
4097 void DumpVkPhysicalDevicePushDescriptorProperties(Printer
&p
, std::string name
, const VkPhysicalDevicePushDescriptorProperties
&obj
) {
4098 ObjectWrapper object
{p
, name
};
4099 p
.SetMinKeyWidth(18);
4100 p
.PrintKeyValue("maxPushDescriptors", obj
.maxPushDescriptors
);
4102 void DumpVkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
&obj
) {
4103 ObjectWrapper object
{p
, name
};
4104 p
.SetMinKeyWidth(33);
4105 p
.PrintKeyBool("formatRgba10x6WithoutYCbCrSampler", static_cast<bool>(obj
.formatRgba10x6WithoutYCbCrSampler
));
4107 void DumpVkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
&obj
) {
4108 ObjectWrapper object
{p
, name
};
4109 p
.SetMinKeyWidth(41);
4110 p
.PrintKeyBool("rasterizationOrderColorAttachmentAccess", static_cast<bool>(obj
.rasterizationOrderColorAttachmentAccess
));
4111 p
.PrintKeyBool("rasterizationOrderDepthAttachmentAccess", static_cast<bool>(obj
.rasterizationOrderDepthAttachmentAccess
));
4112 p
.PrintKeyBool("rasterizationOrderStencilAttachmentAccess", static_cast<bool>(obj
.rasterizationOrderStencilAttachmentAccess
));
4114 void DumpVkPhysicalDeviceRayQueryFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayQueryFeaturesKHR
&obj
) {
4115 ObjectWrapper object
{p
, name
};
4116 p
.SetMinKeyWidth(8);
4117 p
.PrintKeyBool("rayQuery", static_cast<bool>(obj
.rayQuery
));
4119 void DumpVkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
&obj
) {
4120 ObjectWrapper object
{p
, name
};
4121 p
.SetMinKeyWidth(36);
4122 p
.PrintKeyBool("rayTracingMaintenance1", static_cast<bool>(obj
.rayTracingMaintenance1
));
4123 p
.PrintKeyBool("rayTracingPipelineTraceRaysIndirect2", static_cast<bool>(obj
.rayTracingPipelineTraceRaysIndirect2
));
4125 void DumpVkPhysicalDeviceRayTracingPipelineFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR
&obj
) {
4126 ObjectWrapper object
{p
, name
};
4127 p
.SetMinKeyWidth(53);
4128 p
.PrintKeyBool("rayTracingPipeline", static_cast<bool>(obj
.rayTracingPipeline
));
4129 p
.PrintKeyBool("rayTracingPipelineShaderGroupHandleCaptureReplay", static_cast<bool>(obj
.rayTracingPipelineShaderGroupHandleCaptureReplay
));
4130 p
.PrintKeyBool("rayTracingPipelineShaderGroupHandleCaptureReplayMixed", static_cast<bool>(obj
.rayTracingPipelineShaderGroupHandleCaptureReplayMixed
));
4131 p
.PrintKeyBool("rayTracingPipelineTraceRaysIndirect", static_cast<bool>(obj
.rayTracingPipelineTraceRaysIndirect
));
4132 p
.PrintKeyBool("rayTraversalPrimitiveCulling", static_cast<bool>(obj
.rayTraversalPrimitiveCulling
));
4134 void DumpVkPhysicalDeviceRayTracingPipelinePropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR
&obj
) {
4135 ObjectWrapper object
{p
, name
};
4136 p
.SetMinKeyWidth(34);
4137 p
.PrintKeyValue("shaderGroupHandleSize", obj
.shaderGroupHandleSize
);
4138 p
.PrintKeyValue("maxRayRecursionDepth", obj
.maxRayRecursionDepth
);
4139 p
.PrintKeyValue("maxShaderGroupStride", obj
.maxShaderGroupStride
);
4140 p
.PrintKeyValue("shaderGroupBaseAlignment", obj
.shaderGroupBaseAlignment
);
4141 p
.PrintKeyValue("shaderGroupHandleCaptureReplaySize", obj
.shaderGroupHandleCaptureReplaySize
);
4142 p
.PrintKeyValue("maxRayDispatchInvocationCount", obj
.maxRayDispatchInvocationCount
);
4143 p
.PrintKeyValue("shaderGroupHandleAlignment", obj
.shaderGroupHandleAlignment
);
4144 p
.PrintKeyValue("maxRayHitAttributeSize", obj
.maxRayHitAttributeSize
);
4146 void DumpVkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR
&obj
) {
4147 ObjectWrapper object
{p
, name
};
4148 p
.SetMinKeyWidth(23);
4149 p
.PrintKeyBool("rayTracingPositionFetch", static_cast<bool>(obj
.rayTracingPositionFetch
));
4151 void DumpVkPhysicalDeviceRobustness2FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceRobustness2FeaturesEXT
&obj
) {
4152 ObjectWrapper object
{p
, name
};
4153 p
.SetMinKeyWidth(19);
4154 p
.PrintKeyBool("robustBufferAccess2", static_cast<bool>(obj
.robustBufferAccess2
));
4155 p
.PrintKeyBool("robustImageAccess2", static_cast<bool>(obj
.robustImageAccess2
));
4156 p
.PrintKeyBool("nullDescriptor", static_cast<bool>(obj
.nullDescriptor
));
4158 void DumpVkPhysicalDeviceRobustness2PropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceRobustness2PropertiesEXT
&obj
) {
4159 ObjectWrapper object
{p
, name
};
4160 p
.SetMinKeyWidth(38);
4161 p
.PrintKeyValue("robustStorageBufferAccessSizeAlignment", to_hex_str(p
, obj
.robustStorageBufferAccessSizeAlignment
));
4162 p
.PrintKeyValue("robustUniformBufferAccessSizeAlignment", to_hex_str(p
, obj
.robustUniformBufferAccessSizeAlignment
));
4164 void DumpVkPhysicalDeviceSampleLocationsPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceSampleLocationsPropertiesEXT
&obj
) {
4165 ObjectWrapper object
{p
, name
};
4166 p
.SetMinKeyWidth(32);
4167 DumpVkSampleCountFlags(p
, "sampleLocationSampleCounts", obj
.sampleLocationSampleCounts
);
4168 DumpVkExtent2D(p
, "maxSampleLocationGridSize", obj
.maxSampleLocationGridSize
);
4170 ArrayWrapper
arr(p
,"sampleLocationCoordinateRange", 2);
4171 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.sampleLocationCoordinateRange
[i
]); }
4173 p
.PrintKeyValue("sampleLocationSubPixelBits", obj
.sampleLocationSubPixelBits
);
4174 p
.PrintKeyBool("variableSampleLocations", static_cast<bool>(obj
.variableSampleLocations
));
4176 void DumpVkPhysicalDeviceSamplerFilterMinmaxProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceSamplerFilterMinmaxProperties
&obj
) {
4177 ObjectWrapper object
{p
, name
};
4178 p
.SetMinKeyWidth(34);
4179 p
.PrintKeyBool("filterMinmaxSingleComponentFormats", static_cast<bool>(obj
.filterMinmaxSingleComponentFormats
));
4180 p
.PrintKeyBool("filterMinmaxImageComponentMapping", static_cast<bool>(obj
.filterMinmaxImageComponentMapping
));
4182 void DumpVkPhysicalDeviceSamplerYcbcrConversionFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceSamplerYcbcrConversionFeatures
&obj
) {
4183 ObjectWrapper object
{p
, name
};
4184 p
.SetMinKeyWidth(22);
4185 p
.PrintKeyBool("samplerYcbcrConversion", static_cast<bool>(obj
.samplerYcbcrConversion
));
4187 void DumpVkPhysicalDeviceScalarBlockLayoutFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceScalarBlockLayoutFeatures
&obj
) {
4188 ObjectWrapper object
{p
, name
};
4189 p
.SetMinKeyWidth(17);
4190 p
.PrintKeyBool("scalarBlockLayout", static_cast<bool>(obj
.scalarBlockLayout
));
4192 void DumpVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
&obj
) {
4193 ObjectWrapper object
{p
, name
};
4194 p
.SetMinKeyWidth(27);
4195 p
.PrintKeyBool("separateDepthStencilLayouts", static_cast<bool>(obj
.separateDepthStencilLayouts
));
4197 void DumpVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
&obj
) {
4198 ObjectWrapper object
{p
, name
};
4199 p
.SetMinKeyWidth(31);
4200 p
.PrintKeyBool("shaderBufferFloat16Atomics", static_cast<bool>(obj
.shaderBufferFloat16Atomics
));
4201 p
.PrintKeyBool("shaderBufferFloat16AtomicAdd", static_cast<bool>(obj
.shaderBufferFloat16AtomicAdd
));
4202 p
.PrintKeyBool("shaderBufferFloat16AtomicMinMax", static_cast<bool>(obj
.shaderBufferFloat16AtomicMinMax
));
4203 p
.PrintKeyBool("shaderBufferFloat32AtomicMinMax", static_cast<bool>(obj
.shaderBufferFloat32AtomicMinMax
));
4204 p
.PrintKeyBool("shaderBufferFloat64AtomicMinMax", static_cast<bool>(obj
.shaderBufferFloat64AtomicMinMax
));
4205 p
.PrintKeyBool("shaderSharedFloat16Atomics", static_cast<bool>(obj
.shaderSharedFloat16Atomics
));
4206 p
.PrintKeyBool("shaderSharedFloat16AtomicAdd", static_cast<bool>(obj
.shaderSharedFloat16AtomicAdd
));
4207 p
.PrintKeyBool("shaderSharedFloat16AtomicMinMax", static_cast<bool>(obj
.shaderSharedFloat16AtomicMinMax
));
4208 p
.PrintKeyBool("shaderSharedFloat32AtomicMinMax", static_cast<bool>(obj
.shaderSharedFloat32AtomicMinMax
));
4209 p
.PrintKeyBool("shaderSharedFloat64AtomicMinMax", static_cast<bool>(obj
.shaderSharedFloat64AtomicMinMax
));
4210 p
.PrintKeyBool("shaderImageFloat32AtomicMinMax", static_cast<bool>(obj
.shaderImageFloat32AtomicMinMax
));
4211 p
.PrintKeyBool("sparseImageFloat32AtomicMinMax", static_cast<bool>(obj
.sparseImageFloat32AtomicMinMax
));
4213 void DumpVkPhysicalDeviceShaderAtomicFloatFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
&obj
) {
4214 ObjectWrapper object
{p
, name
};
4215 p
.SetMinKeyWidth(28);
4216 p
.PrintKeyBool("shaderBufferFloat32Atomics", static_cast<bool>(obj
.shaderBufferFloat32Atomics
));
4217 p
.PrintKeyBool("shaderBufferFloat32AtomicAdd", static_cast<bool>(obj
.shaderBufferFloat32AtomicAdd
));
4218 p
.PrintKeyBool("shaderBufferFloat64Atomics", static_cast<bool>(obj
.shaderBufferFloat64Atomics
));
4219 p
.PrintKeyBool("shaderBufferFloat64AtomicAdd", static_cast<bool>(obj
.shaderBufferFloat64AtomicAdd
));
4220 p
.PrintKeyBool("shaderSharedFloat32Atomics", static_cast<bool>(obj
.shaderSharedFloat32Atomics
));
4221 p
.PrintKeyBool("shaderSharedFloat32AtomicAdd", static_cast<bool>(obj
.shaderSharedFloat32AtomicAdd
));
4222 p
.PrintKeyBool("shaderSharedFloat64Atomics", static_cast<bool>(obj
.shaderSharedFloat64Atomics
));
4223 p
.PrintKeyBool("shaderSharedFloat64AtomicAdd", static_cast<bool>(obj
.shaderSharedFloat64AtomicAdd
));
4224 p
.PrintKeyBool("shaderImageFloat32Atomics", static_cast<bool>(obj
.shaderImageFloat32Atomics
));
4225 p
.PrintKeyBool("shaderImageFloat32AtomicAdd", static_cast<bool>(obj
.shaderImageFloat32AtomicAdd
));
4226 p
.PrintKeyBool("sparseImageFloat32Atomics", static_cast<bool>(obj
.sparseImageFloat32Atomics
));
4227 p
.PrintKeyBool("sparseImageFloat32AtomicAdd", static_cast<bool>(obj
.sparseImageFloat32AtomicAdd
));
4229 void DumpVkPhysicalDeviceShaderAtomicInt64Features(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderAtomicInt64Features
&obj
) {
4230 ObjectWrapper object
{p
, name
};
4231 p
.SetMinKeyWidth(24);
4232 p
.PrintKeyBool("shaderBufferInt64Atomics", static_cast<bool>(obj
.shaderBufferInt64Atomics
));
4233 p
.PrintKeyBool("shaderSharedInt64Atomics", static_cast<bool>(obj
.shaderSharedInt64Atomics
));
4235 void DumpVkPhysicalDeviceShaderClockFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderClockFeaturesKHR
&obj
) {
4236 ObjectWrapper object
{p
, name
};
4237 p
.SetMinKeyWidth(19);
4238 p
.PrintKeyBool("shaderSubgroupClock", static_cast<bool>(obj
.shaderSubgroupClock
));
4239 p
.PrintKeyBool("shaderDeviceClock", static_cast<bool>(obj
.shaderDeviceClock
));
4241 void DumpVkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
&obj
) {
4242 ObjectWrapper object
{p
, name
};
4243 p
.SetMinKeyWidth(30);
4244 p
.PrintKeyBool("shaderDemoteToHelperInvocation", static_cast<bool>(obj
.shaderDemoteToHelperInvocation
));
4246 void DumpVkPhysicalDeviceShaderDrawParametersFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderDrawParametersFeatures
&obj
) {
4247 ObjectWrapper object
{p
, name
};
4248 p
.SetMinKeyWidth(20);
4249 p
.PrintKeyBool("shaderDrawParameters", static_cast<bool>(obj
.shaderDrawParameters
));
4251 void DumpVkPhysicalDeviceShaderExpectAssumeFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderExpectAssumeFeatures
&obj
) {
4252 ObjectWrapper object
{p
, name
};
4253 p
.SetMinKeyWidth(18);
4254 p
.PrintKeyBool("shaderExpectAssume", static_cast<bool>(obj
.shaderExpectAssume
));
4256 void DumpVkPhysicalDeviceShaderFloat16Int8Features(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderFloat16Int8Features
&obj
) {
4257 ObjectWrapper object
{p
, name
};
4258 p
.SetMinKeyWidth(13);
4259 p
.PrintKeyBool("shaderFloat16", static_cast<bool>(obj
.shaderFloat16
));
4260 p
.PrintKeyBool("shaderInt8", static_cast<bool>(obj
.shaderInt8
));
4262 void DumpVkPhysicalDeviceShaderFloatControls2Features(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderFloatControls2Features
&obj
) {
4263 ObjectWrapper object
{p
, name
};
4264 p
.SetMinKeyWidth(20);
4265 p
.PrintKeyBool("shaderFloatControls2", static_cast<bool>(obj
.shaderFloatControls2
));
4267 void DumpVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
&obj
) {
4268 ObjectWrapper object
{p
, name
};
4269 p
.SetMinKeyWidth(23);
4270 p
.PrintKeyBool("shaderImageInt64Atomics", static_cast<bool>(obj
.shaderImageInt64Atomics
));
4271 p
.PrintKeyBool("sparseImageInt64Atomics", static_cast<bool>(obj
.sparseImageInt64Atomics
));
4273 void DumpVkPhysicalDeviceShaderIntegerDotProductFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderIntegerDotProductFeatures
&obj
) {
4274 ObjectWrapper object
{p
, name
};
4275 p
.SetMinKeyWidth(23);
4276 p
.PrintKeyBool("shaderIntegerDotProduct", static_cast<bool>(obj
.shaderIntegerDotProduct
));
4278 void DumpVkPhysicalDeviceShaderIntegerDotProductProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderIntegerDotProductProperties
&obj
) {
4279 ObjectWrapper object
{p
, name
};
4280 p
.SetMinKeyWidth(77);
4281 p
.PrintKeyBool("integerDotProduct8BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct8BitUnsignedAccelerated
));
4282 p
.PrintKeyBool("integerDotProduct8BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct8BitSignedAccelerated
));
4283 p
.PrintKeyBool("integerDotProduct8BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct8BitMixedSignednessAccelerated
));
4284 p
.PrintKeyBool("integerDotProduct4x8BitPackedUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedUnsignedAccelerated
));
4285 p
.PrintKeyBool("integerDotProduct4x8BitPackedSignedAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedSignedAccelerated
));
4286 p
.PrintKeyBool("integerDotProduct4x8BitPackedMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedMixedSignednessAccelerated
));
4287 p
.PrintKeyBool("integerDotProduct16BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct16BitUnsignedAccelerated
));
4288 p
.PrintKeyBool("integerDotProduct16BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct16BitSignedAccelerated
));
4289 p
.PrintKeyBool("integerDotProduct16BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct16BitMixedSignednessAccelerated
));
4290 p
.PrintKeyBool("integerDotProduct32BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct32BitUnsignedAccelerated
));
4291 p
.PrintKeyBool("integerDotProduct32BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct32BitSignedAccelerated
));
4292 p
.PrintKeyBool("integerDotProduct32BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct32BitMixedSignednessAccelerated
));
4293 p
.PrintKeyBool("integerDotProduct64BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct64BitUnsignedAccelerated
));
4294 p
.PrintKeyBool("integerDotProduct64BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct64BitSignedAccelerated
));
4295 p
.PrintKeyBool("integerDotProduct64BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct64BitMixedSignednessAccelerated
));
4296 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated
));
4297 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitSignedAccelerated
));
4298 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated
));
4299 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated
));
4300 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated
));
4301 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated
));
4302 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated
));
4303 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitSignedAccelerated
));
4304 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated
));
4305 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated
));
4306 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitSignedAccelerated
));
4307 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated
));
4308 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated
));
4309 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitSignedAccelerated
));
4310 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated
));
4312 void DumpVkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
&obj
) {
4313 ObjectWrapper object
{p
, name
};
4314 p
.SetMinKeyWidth(26);
4315 p
.PrintKeyBool("shaderMaximalReconvergence", static_cast<bool>(obj
.shaderMaximalReconvergence
));
4317 void DumpVkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
&obj
) {
4318 ObjectWrapper object
{p
, name
};
4319 p
.SetMinKeyWidth(22);
4320 p
.PrintKeyBool("shaderModuleIdentifier", static_cast<bool>(obj
.shaderModuleIdentifier
));
4322 void DumpVkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
&obj
) {
4323 ObjectWrapper object
{p
, name
};
4324 p
.SetMinKeyWidth(39);
4325 p
.PrintKeyValue("shaderModuleIdentifierAlgorithmUUID", obj
.shaderModuleIdentifierAlgorithmUUID
);
4327 void DumpVkPhysicalDeviceShaderObjectFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderObjectFeaturesEXT
&obj
) {
4328 ObjectWrapper object
{p
, name
};
4329 p
.SetMinKeyWidth(12);
4330 p
.PrintKeyBool("shaderObject", static_cast<bool>(obj
.shaderObject
));
4332 void DumpVkPhysicalDeviceShaderObjectPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderObjectPropertiesEXT
&obj
) {
4333 ObjectWrapper object
{p
, name
};
4334 p
.SetMinKeyWidth(20);
4335 p
.PrintKeyValue("shaderBinaryUUID", obj
.shaderBinaryUUID
);
4336 p
.PrintKeyValue("shaderBinaryVersion", obj
.shaderBinaryVersion
);
4338 void DumpVkPhysicalDeviceShaderQuadControlFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderQuadControlFeaturesKHR
&obj
) {
4339 ObjectWrapper object
{p
, name
};
4340 p
.SetMinKeyWidth(17);
4341 p
.PrintKeyBool("shaderQuadControl", static_cast<bool>(obj
.shaderQuadControl
));
4343 void DumpVkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
&obj
) {
4344 ObjectWrapper object
{p
, name
};
4345 p
.SetMinKeyWidth(32);
4346 p
.PrintKeyBool("shaderRelaxedExtendedInstruction", static_cast<bool>(obj
.shaderRelaxedExtendedInstruction
));
4348 void DumpVkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT
&obj
) {
4349 ObjectWrapper object
{p
, name
};
4350 p
.SetMinKeyWidth(26);
4351 p
.PrintKeyBool("shaderReplicatedComposites", static_cast<bool>(obj
.shaderReplicatedComposites
));
4353 void DumpVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
&obj
) {
4354 ObjectWrapper object
{p
, name
};
4355 p
.SetMinKeyWidth(27);
4356 p
.PrintKeyBool("shaderSubgroupExtendedTypes", static_cast<bool>(obj
.shaderSubgroupExtendedTypes
));
4358 void DumpVkPhysicalDeviceShaderSubgroupRotateFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderSubgroupRotateFeatures
&obj
) {
4359 ObjectWrapper object
{p
, name
};
4360 p
.SetMinKeyWidth(29);
4361 p
.PrintKeyBool("shaderSubgroupRotate", static_cast<bool>(obj
.shaderSubgroupRotate
));
4362 p
.PrintKeyBool("shaderSubgroupRotateClustered", static_cast<bool>(obj
.shaderSubgroupRotateClustered
));
4364 void DumpVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
&obj
) {
4365 ObjectWrapper object
{p
, name
};
4366 p
.SetMinKeyWidth(32);
4367 p
.PrintKeyBool("shaderSubgroupUniformControlFlow", static_cast<bool>(obj
.shaderSubgroupUniformControlFlow
));
4369 void DumpVkPhysicalDeviceShaderTerminateInvocationFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderTerminateInvocationFeatures
&obj
) {
4370 ObjectWrapper object
{p
, name
};
4371 p
.SetMinKeyWidth(25);
4372 p
.PrintKeyBool("shaderTerminateInvocation", static_cast<bool>(obj
.shaderTerminateInvocation
));
4374 void DumpVkPhysicalDeviceShaderTileImageFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderTileImageFeaturesEXT
&obj
) {
4375 ObjectWrapper object
{p
, name
};
4376 p
.SetMinKeyWidth(32);
4377 p
.PrintKeyBool("shaderTileImageColorReadAccess", static_cast<bool>(obj
.shaderTileImageColorReadAccess
));
4378 p
.PrintKeyBool("shaderTileImageDepthReadAccess", static_cast<bool>(obj
.shaderTileImageDepthReadAccess
));
4379 p
.PrintKeyBool("shaderTileImageStencilReadAccess", static_cast<bool>(obj
.shaderTileImageStencilReadAccess
));
4381 void DumpVkPhysicalDeviceShaderTileImagePropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderTileImagePropertiesEXT
&obj
) {
4382 ObjectWrapper object
{p
, name
};
4383 p
.SetMinKeyWidth(48);
4384 p
.PrintKeyBool("shaderTileImageCoherentReadAccelerated", static_cast<bool>(obj
.shaderTileImageCoherentReadAccelerated
));
4385 p
.PrintKeyBool("shaderTileImageReadSampleFromPixelRateInvocation", static_cast<bool>(obj
.shaderTileImageReadSampleFromPixelRateInvocation
));
4386 p
.PrintKeyBool("shaderTileImageReadFromHelperInvocation", static_cast<bool>(obj
.shaderTileImageReadFromHelperInvocation
));
4388 void DumpVkPhysicalDeviceSparseProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceSparseProperties
&obj
) {
4389 if (p
.Type() == OutputType::json
)
4390 p
.ObjectStart("sparseProperties");
4392 p
.SetSubHeader().ObjectStart(name
);
4393 p
.SetMinKeyWidth(40);
4394 p
.PrintKeyBool("residencyStandard2DBlockShape", static_cast<bool>(obj
.residencyStandard2DBlockShape
));
4395 p
.PrintKeyBool("residencyStandard2DMultisampleBlockShape", static_cast<bool>(obj
.residencyStandard2DMultisampleBlockShape
));
4396 p
.PrintKeyBool("residencyStandard3DBlockShape", static_cast<bool>(obj
.residencyStandard3DBlockShape
));
4397 p
.PrintKeyBool("residencyAlignedMipSize", static_cast<bool>(obj
.residencyAlignedMipSize
));
4398 p
.PrintKeyBool("residencyNonResidentStrict", static_cast<bool>(obj
.residencyNonResidentStrict
));
4401 void DumpVkPhysicalDeviceSubgroupProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceSubgroupProperties
&obj
) {
4402 ObjectWrapper object
{p
, name
};
4403 p
.SetMinKeyWidth(25);
4404 p
.PrintKeyValue("subgroupSize", obj
.subgroupSize
);
4405 DumpVkShaderStageFlags(p
, "supportedStages", obj
.supportedStages
);
4406 DumpVkSubgroupFeatureFlags(p
, "supportedOperations", obj
.supportedOperations
);
4407 p
.PrintKeyBool("quadOperationsInAllStages", static_cast<bool>(obj
.quadOperationsInAllStages
));
4409 void DumpVkPhysicalDeviceSubgroupSizeControlFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceSubgroupSizeControlFeatures
&obj
) {
4410 ObjectWrapper object
{p
, name
};
4411 p
.SetMinKeyWidth(20);
4412 p
.PrintKeyBool("subgroupSizeControl", static_cast<bool>(obj
.subgroupSizeControl
));
4413 p
.PrintKeyBool("computeFullSubgroups", static_cast<bool>(obj
.computeFullSubgroups
));
4415 void DumpVkPhysicalDeviceSubgroupSizeControlProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceSubgroupSizeControlProperties
&obj
) {
4416 ObjectWrapper object
{p
, name
};
4417 p
.SetMinKeyWidth(28);
4418 p
.PrintKeyValue("minSubgroupSize", obj
.minSubgroupSize
);
4419 p
.PrintKeyValue("maxSubgroupSize", obj
.maxSubgroupSize
);
4420 p
.PrintKeyValue("maxComputeWorkgroupSubgroups", obj
.maxComputeWorkgroupSubgroups
);
4421 DumpVkShaderStageFlags(p
, "requiredSubgroupSizeStages", obj
.requiredSubgroupSizeStages
);
4423 void DumpVkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
&obj
) {
4424 ObjectWrapper object
{p
, name
};
4425 p
.SetMinKeyWidth(20);
4426 p
.PrintKeyBool("subpassMergeFeedback", static_cast<bool>(obj
.subpassMergeFeedback
));
4428 void DumpVkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT
&obj
) {
4429 ObjectWrapper object
{p
, name
};
4430 p
.SetMinKeyWidth(21);
4431 p
.PrintKeyBool("swapchainMaintenance1", static_cast<bool>(obj
.swapchainMaintenance1
));
4433 void DumpVkPhysicalDeviceSynchronization2Features(Printer
&p
, std::string name
, const VkPhysicalDeviceSynchronization2Features
&obj
) {
4434 ObjectWrapper object
{p
, name
};
4435 p
.SetMinKeyWidth(16);
4436 p
.PrintKeyBool("synchronization2", static_cast<bool>(obj
.synchronization2
));
4438 void DumpVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
&obj
) {
4439 ObjectWrapper object
{p
, name
};
4440 p
.SetMinKeyWidth(20);
4441 p
.PrintKeyBool("texelBufferAlignment", static_cast<bool>(obj
.texelBufferAlignment
));
4443 void DumpVkPhysicalDeviceTexelBufferAlignmentProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceTexelBufferAlignmentProperties
&obj
) {
4444 ObjectWrapper object
{p
, name
};
4445 p
.SetMinKeyWidth(44);
4446 p
.PrintKeyValue("storageTexelBufferOffsetAlignmentBytes", to_hex_str(p
, obj
.storageTexelBufferOffsetAlignmentBytes
));
4447 p
.PrintKeyBool("storageTexelBufferOffsetSingleTexelAlignment", static_cast<bool>(obj
.storageTexelBufferOffsetSingleTexelAlignment
));
4448 p
.PrintKeyValue("uniformTexelBufferOffsetAlignmentBytes", to_hex_str(p
, obj
.uniformTexelBufferOffsetAlignmentBytes
));
4449 p
.PrintKeyBool("uniformTexelBufferOffsetSingleTexelAlignment", static_cast<bool>(obj
.uniformTexelBufferOffsetSingleTexelAlignment
));
4451 void DumpVkPhysicalDeviceTextureCompressionASTCHDRFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures
&obj
) {
4452 ObjectWrapper object
{p
, name
};
4453 p
.SetMinKeyWidth(26);
4454 p
.PrintKeyBool("textureCompressionASTC_HDR", static_cast<bool>(obj
.textureCompressionASTC_HDR
));
4456 void DumpVkPhysicalDeviceTimelineSemaphoreFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceTimelineSemaphoreFeatures
&obj
) {
4457 ObjectWrapper object
{p
, name
};
4458 p
.SetMinKeyWidth(17);
4459 p
.PrintKeyBool("timelineSemaphore", static_cast<bool>(obj
.timelineSemaphore
));
4461 void DumpVkPhysicalDeviceTimelineSemaphoreProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceTimelineSemaphoreProperties
&obj
) {
4462 ObjectWrapper object
{p
, name
};
4463 p
.SetMinKeyWidth(35);
4464 p
.PrintKeyValue("maxTimelineSemaphoreValueDifference", obj
.maxTimelineSemaphoreValueDifference
);
4466 void DumpVkPhysicalDeviceToolProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceToolProperties
&obj
) {
4467 ObjectWrapper object
{p
, name
};
4468 p
.SetMinKeyWidth(16);
4469 p
.PrintKeyString("name", obj
.name
);
4470 p
.PrintKeyString("version", obj
.version
);
4471 DumpVkToolPurposeFlags(p
, "purposes", obj
.purposes
);
4472 p
.PrintKeyString("description", obj
.description
);
4473 p
.PrintKeyString("layer", obj
.layer
);
4475 void DumpVkPhysicalDeviceTransformFeedbackFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceTransformFeedbackFeaturesEXT
&obj
) {
4476 ObjectWrapper object
{p
, name
};
4477 p
.SetMinKeyWidth(17);
4478 p
.PrintKeyBool("transformFeedback", static_cast<bool>(obj
.transformFeedback
));
4479 p
.PrintKeyBool("geometryStreams", static_cast<bool>(obj
.geometryStreams
));
4481 void DumpVkPhysicalDeviceTransformFeedbackPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceTransformFeedbackPropertiesEXT
&obj
) {
4482 ObjectWrapper object
{p
, name
};
4483 p
.SetMinKeyWidth(42);
4484 p
.PrintKeyValue("maxTransformFeedbackStreams", obj
.maxTransformFeedbackStreams
);
4485 p
.PrintKeyValue("maxTransformFeedbackBuffers", obj
.maxTransformFeedbackBuffers
);
4486 p
.PrintKeyValue("maxTransformFeedbackBufferSize", to_hex_str(p
, obj
.maxTransformFeedbackBufferSize
));
4487 p
.PrintKeyValue("maxTransformFeedbackStreamDataSize", obj
.maxTransformFeedbackStreamDataSize
);
4488 p
.PrintKeyValue("maxTransformFeedbackBufferDataSize", obj
.maxTransformFeedbackBufferDataSize
);
4489 p
.PrintKeyValue("maxTransformFeedbackBufferDataStride", obj
.maxTransformFeedbackBufferDataStride
);
4490 p
.PrintKeyBool("transformFeedbackQueries", static_cast<bool>(obj
.transformFeedbackQueries
));
4491 p
.PrintKeyBool("transformFeedbackStreamsLinesTriangles", static_cast<bool>(obj
.transformFeedbackStreamsLinesTriangles
));
4492 p
.PrintKeyBool("transformFeedbackRasterizationStreamSelect", static_cast<bool>(obj
.transformFeedbackRasterizationStreamSelect
));
4493 p
.PrintKeyBool("transformFeedbackDraw", static_cast<bool>(obj
.transformFeedbackDraw
));
4495 void DumpVkPhysicalDeviceUniformBufferStandardLayoutFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures
&obj
) {
4496 ObjectWrapper object
{p
, name
};
4497 p
.SetMinKeyWidth(27);
4498 p
.PrintKeyBool("uniformBufferStandardLayout", static_cast<bool>(obj
.uniformBufferStandardLayout
));
4500 void DumpVkPhysicalDeviceVariablePointersFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceVariablePointersFeatures
&obj
) {
4501 ObjectWrapper object
{p
, name
};
4502 p
.SetMinKeyWidth(29);
4503 p
.PrintKeyBool("variablePointersStorageBuffer", static_cast<bool>(obj
.variablePointersStorageBuffer
));
4504 p
.PrintKeyBool("variablePointers", static_cast<bool>(obj
.variablePointers
));
4506 void DumpVkPhysicalDeviceVertexAttributeDivisorFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexAttributeDivisorFeatures
&obj
) {
4507 ObjectWrapper object
{p
, name
};
4508 p
.SetMinKeyWidth(38);
4509 p
.PrintKeyBool("vertexAttributeInstanceRateDivisor", static_cast<bool>(obj
.vertexAttributeInstanceRateDivisor
));
4510 p
.PrintKeyBool("vertexAttributeInstanceRateZeroDivisor", static_cast<bool>(obj
.vertexAttributeInstanceRateZeroDivisor
));
4512 void DumpVkPhysicalDeviceVertexAttributeDivisorProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexAttributeDivisorProperties
&obj
) {
4513 ObjectWrapper object
{p
, name
};
4514 p
.SetMinKeyWidth(28);
4515 p
.PrintKeyValue("maxVertexAttribDivisor", obj
.maxVertexAttribDivisor
);
4516 p
.PrintKeyBool("supportsNonZeroFirstInstance", static_cast<bool>(obj
.supportsNonZeroFirstInstance
));
4518 void DumpVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
&obj
) {
4519 ObjectWrapper object
{p
, name
};
4520 p
.SetMinKeyWidth(22);
4521 p
.PrintKeyValue("maxVertexAttribDivisor", obj
.maxVertexAttribDivisor
);
4523 void DumpVkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT
&obj
) {
4524 ObjectWrapper object
{p
, name
};
4525 p
.SetMinKeyWidth(25);
4526 p
.PrintKeyBool("vertexAttributeRobustness", static_cast<bool>(obj
.vertexAttributeRobustness
));
4528 void DumpVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
&obj
) {
4529 ObjectWrapper object
{p
, name
};
4530 p
.SetMinKeyWidth(23);
4531 p
.PrintKeyBool("vertexInputDynamicState", static_cast<bool>(obj
.vertexInputDynamicState
));
4533 void DumpVkPhysicalDeviceVideoEncodeAV1FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceVideoEncodeAV1FeaturesKHR
&obj
) {
4534 ObjectWrapper object
{p
, name
};
4535 p
.SetMinKeyWidth(14);
4536 p
.PrintKeyBool("videoEncodeAV1", static_cast<bool>(obj
.videoEncodeAV1
));
4538 void DumpVkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR
&obj
) {
4539 ObjectWrapper object
{p
, name
};
4540 p
.SetMinKeyWidth(26);
4541 p
.PrintKeyBool("videoEncodeQuantizationMap", static_cast<bool>(obj
.videoEncodeQuantizationMap
));
4543 void DumpVkPhysicalDeviceVideoMaintenance1FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceVideoMaintenance1FeaturesKHR
&obj
) {
4544 ObjectWrapper object
{p
, name
};
4545 p
.SetMinKeyWidth(17);
4546 p
.PrintKeyBool("videoMaintenance1", static_cast<bool>(obj
.videoMaintenance1
));
4548 void DumpVkPhysicalDeviceVideoMaintenance2FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceVideoMaintenance2FeaturesKHR
&obj
) {
4549 ObjectWrapper object
{p
, name
};
4550 p
.SetMinKeyWidth(17);
4551 p
.PrintKeyBool("videoMaintenance2", static_cast<bool>(obj
.videoMaintenance2
));
4553 void DumpVkPhysicalDeviceVulkan11Features(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan11Features
&obj
) {
4554 ObjectWrapper object
{p
, name
};
4555 p
.SetMinKeyWidth(34);
4556 p
.PrintKeyBool("storageBuffer16BitAccess", static_cast<bool>(obj
.storageBuffer16BitAccess
));
4557 p
.PrintKeyBool("uniformAndStorageBuffer16BitAccess", static_cast<bool>(obj
.uniformAndStorageBuffer16BitAccess
));
4558 p
.PrintKeyBool("storagePushConstant16", static_cast<bool>(obj
.storagePushConstant16
));
4559 p
.PrintKeyBool("storageInputOutput16", static_cast<bool>(obj
.storageInputOutput16
));
4560 p
.PrintKeyBool("multiview", static_cast<bool>(obj
.multiview
));
4561 p
.PrintKeyBool("multiviewGeometryShader", static_cast<bool>(obj
.multiviewGeometryShader
));
4562 p
.PrintKeyBool("multiviewTessellationShader", static_cast<bool>(obj
.multiviewTessellationShader
));
4563 p
.PrintKeyBool("variablePointersStorageBuffer", static_cast<bool>(obj
.variablePointersStorageBuffer
));
4564 p
.PrintKeyBool("variablePointers", static_cast<bool>(obj
.variablePointers
));
4565 p
.PrintKeyBool("protectedMemory", static_cast<bool>(obj
.protectedMemory
));
4566 p
.PrintKeyBool("samplerYcbcrConversion", static_cast<bool>(obj
.samplerYcbcrConversion
));
4567 p
.PrintKeyBool("shaderDrawParameters", static_cast<bool>(obj
.shaderDrawParameters
));
4569 void DumpVkPhysicalDeviceVulkan11Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan11Properties
&obj
) {
4570 ObjectWrapper object
{p
, name
};
4571 p
.SetMinKeyWidth(33);
4572 p
.PrintKeyValue("deviceUUID", obj
.deviceUUID
);
4573 p
.PrintKeyValue("driverUUID", obj
.driverUUID
);
4574 if (obj
.deviceLUIDValid
) { // special case
4575 p
.PrintKeyValue("deviceLUID", obj
.deviceLUID
);
4577 p
.PrintKeyValue("deviceNodeMask", obj
.deviceNodeMask
);
4578 p
.PrintKeyBool("deviceLUIDValid", static_cast<bool>(obj
.deviceLUIDValid
));
4579 p
.PrintKeyValue("subgroupSize", obj
.subgroupSize
);
4580 DumpVkShaderStageFlags(p
, "subgroupSupportedStages", obj
.subgroupSupportedStages
);
4581 DumpVkSubgroupFeatureFlags(p
, "subgroupSupportedOperations", obj
.subgroupSupportedOperations
);
4582 p
.PrintKeyBool("subgroupQuadOperationsInAllStages", static_cast<bool>(obj
.subgroupQuadOperationsInAllStages
));
4583 DumpVkPointClippingBehavior(p
, "pointClippingBehavior", obj
.pointClippingBehavior
);
4584 p
.PrintKeyValue("maxMultiviewViewCount", obj
.maxMultiviewViewCount
);
4585 p
.PrintKeyValue("maxMultiviewInstanceIndex", obj
.maxMultiviewInstanceIndex
);
4586 p
.PrintKeyBool("protectedNoFault", static_cast<bool>(obj
.protectedNoFault
));
4587 p
.PrintKeyValue("maxPerSetDescriptors", obj
.maxPerSetDescriptors
);
4588 p
.PrintKeyValue("maxMemoryAllocationSize", to_hex_str(p
, obj
.maxMemoryAllocationSize
));
4590 void DumpVkPhysicalDeviceVulkan12Features(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan12Features
&obj
) {
4591 ObjectWrapper object
{p
, name
};
4592 p
.SetMinKeyWidth(50);
4593 p
.PrintKeyBool("samplerMirrorClampToEdge", static_cast<bool>(obj
.samplerMirrorClampToEdge
));
4594 p
.PrintKeyBool("drawIndirectCount", static_cast<bool>(obj
.drawIndirectCount
));
4595 p
.PrintKeyBool("storageBuffer8BitAccess", static_cast<bool>(obj
.storageBuffer8BitAccess
));
4596 p
.PrintKeyBool("uniformAndStorageBuffer8BitAccess", static_cast<bool>(obj
.uniformAndStorageBuffer8BitAccess
));
4597 p
.PrintKeyBool("storagePushConstant8", static_cast<bool>(obj
.storagePushConstant8
));
4598 p
.PrintKeyBool("shaderBufferInt64Atomics", static_cast<bool>(obj
.shaderBufferInt64Atomics
));
4599 p
.PrintKeyBool("shaderSharedInt64Atomics", static_cast<bool>(obj
.shaderSharedInt64Atomics
));
4600 p
.PrintKeyBool("shaderFloat16", static_cast<bool>(obj
.shaderFloat16
));
4601 p
.PrintKeyBool("shaderInt8", static_cast<bool>(obj
.shaderInt8
));
4602 p
.PrintKeyBool("descriptorIndexing", static_cast<bool>(obj
.descriptorIndexing
));
4603 p
.PrintKeyBool("shaderInputAttachmentArrayDynamicIndexing", static_cast<bool>(obj
.shaderInputAttachmentArrayDynamicIndexing
));
4604 p
.PrintKeyBool("shaderUniformTexelBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderUniformTexelBufferArrayDynamicIndexing
));
4605 p
.PrintKeyBool("shaderStorageTexelBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderStorageTexelBufferArrayDynamicIndexing
));
4606 p
.PrintKeyBool("shaderUniformBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderUniformBufferArrayNonUniformIndexing
));
4607 p
.PrintKeyBool("shaderSampledImageArrayNonUniformIndexing", static_cast<bool>(obj
.shaderSampledImageArrayNonUniformIndexing
));
4608 p
.PrintKeyBool("shaderStorageBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageBufferArrayNonUniformIndexing
));
4609 p
.PrintKeyBool("shaderStorageImageArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageImageArrayNonUniformIndexing
));
4610 p
.PrintKeyBool("shaderInputAttachmentArrayNonUniformIndexing", static_cast<bool>(obj
.shaderInputAttachmentArrayNonUniformIndexing
));
4611 p
.PrintKeyBool("shaderUniformTexelBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderUniformTexelBufferArrayNonUniformIndexing
));
4612 p
.PrintKeyBool("shaderStorageTexelBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageTexelBufferArrayNonUniformIndexing
));
4613 p
.PrintKeyBool("descriptorBindingUniformBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingUniformBufferUpdateAfterBind
));
4614 p
.PrintKeyBool("descriptorBindingSampledImageUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingSampledImageUpdateAfterBind
));
4615 p
.PrintKeyBool("descriptorBindingStorageImageUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageImageUpdateAfterBind
));
4616 p
.PrintKeyBool("descriptorBindingStorageBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageBufferUpdateAfterBind
));
4617 p
.PrintKeyBool("descriptorBindingUniformTexelBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingUniformTexelBufferUpdateAfterBind
));
4618 p
.PrintKeyBool("descriptorBindingStorageTexelBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageTexelBufferUpdateAfterBind
));
4619 p
.PrintKeyBool("descriptorBindingUpdateUnusedWhilePending", static_cast<bool>(obj
.descriptorBindingUpdateUnusedWhilePending
));
4620 p
.PrintKeyBool("descriptorBindingPartiallyBound", static_cast<bool>(obj
.descriptorBindingPartiallyBound
));
4621 p
.PrintKeyBool("descriptorBindingVariableDescriptorCount", static_cast<bool>(obj
.descriptorBindingVariableDescriptorCount
));
4622 p
.PrintKeyBool("runtimeDescriptorArray", static_cast<bool>(obj
.runtimeDescriptorArray
));
4623 p
.PrintKeyBool("samplerFilterMinmax", static_cast<bool>(obj
.samplerFilterMinmax
));
4624 p
.PrintKeyBool("scalarBlockLayout", static_cast<bool>(obj
.scalarBlockLayout
));
4625 p
.PrintKeyBool("imagelessFramebuffer", static_cast<bool>(obj
.imagelessFramebuffer
));
4626 p
.PrintKeyBool("uniformBufferStandardLayout", static_cast<bool>(obj
.uniformBufferStandardLayout
));
4627 p
.PrintKeyBool("shaderSubgroupExtendedTypes", static_cast<bool>(obj
.shaderSubgroupExtendedTypes
));
4628 p
.PrintKeyBool("separateDepthStencilLayouts", static_cast<bool>(obj
.separateDepthStencilLayouts
));
4629 p
.PrintKeyBool("hostQueryReset", static_cast<bool>(obj
.hostQueryReset
));
4630 p
.PrintKeyBool("timelineSemaphore", static_cast<bool>(obj
.timelineSemaphore
));
4631 p
.PrintKeyBool("bufferDeviceAddress", static_cast<bool>(obj
.bufferDeviceAddress
));
4632 p
.PrintKeyBool("bufferDeviceAddressCaptureReplay", static_cast<bool>(obj
.bufferDeviceAddressCaptureReplay
));
4633 p
.PrintKeyBool("bufferDeviceAddressMultiDevice", static_cast<bool>(obj
.bufferDeviceAddressMultiDevice
));
4634 p
.PrintKeyBool("vulkanMemoryModel", static_cast<bool>(obj
.vulkanMemoryModel
));
4635 p
.PrintKeyBool("vulkanMemoryModelDeviceScope", static_cast<bool>(obj
.vulkanMemoryModelDeviceScope
));
4636 p
.PrintKeyBool("vulkanMemoryModelAvailabilityVisibilityChains", static_cast<bool>(obj
.vulkanMemoryModelAvailabilityVisibilityChains
));
4637 p
.PrintKeyBool("shaderOutputViewportIndex", static_cast<bool>(obj
.shaderOutputViewportIndex
));
4638 p
.PrintKeyBool("shaderOutputLayer", static_cast<bool>(obj
.shaderOutputLayer
));
4639 p
.PrintKeyBool("subgroupBroadcastDynamicId", static_cast<bool>(obj
.subgroupBroadcastDynamicId
));
4641 void DumpVkPhysicalDeviceVulkan12Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan12Properties
&obj
) {
4642 ObjectWrapper object
{p
, name
};
4643 p
.SetMinKeyWidth(52);
4644 DumpVkDriverId(p
, "driverID", obj
.driverID
);
4645 p
.PrintKeyString("driverName", obj
.driverName
);
4646 p
.PrintKeyString("driverInfo", obj
.driverInfo
);
4647 DumpVkConformanceVersion(p
, "conformanceVersion", obj
.conformanceVersion
);
4648 DumpVkShaderFloatControlsIndependence(p
, "denormBehaviorIndependence", obj
.denormBehaviorIndependence
);
4649 DumpVkShaderFloatControlsIndependence(p
, "roundingModeIndependence", obj
.roundingModeIndependence
);
4650 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat16", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat16
));
4651 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat32", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat32
));
4652 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat64", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat64
));
4653 p
.PrintKeyBool("shaderDenormPreserveFloat16", static_cast<bool>(obj
.shaderDenormPreserveFloat16
));
4654 p
.PrintKeyBool("shaderDenormPreserveFloat32", static_cast<bool>(obj
.shaderDenormPreserveFloat32
));
4655 p
.PrintKeyBool("shaderDenormPreserveFloat64", static_cast<bool>(obj
.shaderDenormPreserveFloat64
));
4656 p
.PrintKeyBool("shaderDenormFlushToZeroFloat16", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat16
));
4657 p
.PrintKeyBool("shaderDenormFlushToZeroFloat32", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat32
));
4658 p
.PrintKeyBool("shaderDenormFlushToZeroFloat64", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat64
));
4659 p
.PrintKeyBool("shaderRoundingModeRTEFloat16", static_cast<bool>(obj
.shaderRoundingModeRTEFloat16
));
4660 p
.PrintKeyBool("shaderRoundingModeRTEFloat32", static_cast<bool>(obj
.shaderRoundingModeRTEFloat32
));
4661 p
.PrintKeyBool("shaderRoundingModeRTEFloat64", static_cast<bool>(obj
.shaderRoundingModeRTEFloat64
));
4662 p
.PrintKeyBool("shaderRoundingModeRTZFloat16", static_cast<bool>(obj
.shaderRoundingModeRTZFloat16
));
4663 p
.PrintKeyBool("shaderRoundingModeRTZFloat32", static_cast<bool>(obj
.shaderRoundingModeRTZFloat32
));
4664 p
.PrintKeyBool("shaderRoundingModeRTZFloat64", static_cast<bool>(obj
.shaderRoundingModeRTZFloat64
));
4665 p
.PrintKeyValue("maxUpdateAfterBindDescriptorsInAllPools", obj
.maxUpdateAfterBindDescriptorsInAllPools
);
4666 p
.PrintKeyBool("shaderUniformBufferArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderUniformBufferArrayNonUniformIndexingNative
));
4667 p
.PrintKeyBool("shaderSampledImageArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderSampledImageArrayNonUniformIndexingNative
));
4668 p
.PrintKeyBool("shaderStorageBufferArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderStorageBufferArrayNonUniformIndexingNative
));
4669 p
.PrintKeyBool("shaderStorageImageArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderStorageImageArrayNonUniformIndexingNative
));
4670 p
.PrintKeyBool("shaderInputAttachmentArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderInputAttachmentArrayNonUniformIndexingNative
));
4671 p
.PrintKeyBool("robustBufferAccessUpdateAfterBind", static_cast<bool>(obj
.robustBufferAccessUpdateAfterBind
));
4672 p
.PrintKeyBool("quadDivergentImplicitLod", static_cast<bool>(obj
.quadDivergentImplicitLod
));
4673 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindSamplers", obj
.maxPerStageDescriptorUpdateAfterBindSamplers
);
4674 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindUniformBuffers", obj
.maxPerStageDescriptorUpdateAfterBindUniformBuffers
);
4675 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindStorageBuffers", obj
.maxPerStageDescriptorUpdateAfterBindStorageBuffers
);
4676 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindSampledImages", obj
.maxPerStageDescriptorUpdateAfterBindSampledImages
);
4677 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindStorageImages", obj
.maxPerStageDescriptorUpdateAfterBindStorageImages
);
4678 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindInputAttachments", obj
.maxPerStageDescriptorUpdateAfterBindInputAttachments
);
4679 p
.PrintKeyValue("maxPerStageUpdateAfterBindResources", obj
.maxPerStageUpdateAfterBindResources
);
4680 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindSamplers", obj
.maxDescriptorSetUpdateAfterBindSamplers
);
4681 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindUniformBuffers", obj
.maxDescriptorSetUpdateAfterBindUniformBuffers
);
4682 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindUniformBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
);
4683 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageBuffers", obj
.maxDescriptorSetUpdateAfterBindStorageBuffers
);
4684 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
);
4685 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindSampledImages", obj
.maxDescriptorSetUpdateAfterBindSampledImages
);
4686 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageImages", obj
.maxDescriptorSetUpdateAfterBindStorageImages
);
4687 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindInputAttachments", obj
.maxDescriptorSetUpdateAfterBindInputAttachments
);
4688 DumpVkResolveModeFlags(p
, "supportedDepthResolveModes", obj
.supportedDepthResolveModes
);
4689 DumpVkResolveModeFlags(p
, "supportedStencilResolveModes", obj
.supportedStencilResolveModes
);
4690 p
.PrintKeyBool("independentResolveNone", static_cast<bool>(obj
.independentResolveNone
));
4691 p
.PrintKeyBool("independentResolve", static_cast<bool>(obj
.independentResolve
));
4692 p
.PrintKeyBool("filterMinmaxSingleComponentFormats", static_cast<bool>(obj
.filterMinmaxSingleComponentFormats
));
4693 p
.PrintKeyBool("filterMinmaxImageComponentMapping", static_cast<bool>(obj
.filterMinmaxImageComponentMapping
));
4694 p
.PrintKeyValue("maxTimelineSemaphoreValueDifference", obj
.maxTimelineSemaphoreValueDifference
);
4695 DumpVkSampleCountFlags(p
, "framebufferIntegerColorSampleCounts", obj
.framebufferIntegerColorSampleCounts
);
4697 void DumpVkPhysicalDeviceVulkan13Features(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan13Features
&obj
) {
4698 ObjectWrapper object
{p
, name
};
4699 p
.SetMinKeyWidth(50);
4700 p
.PrintKeyBool("robustImageAccess", static_cast<bool>(obj
.robustImageAccess
));
4701 p
.PrintKeyBool("inlineUniformBlock", static_cast<bool>(obj
.inlineUniformBlock
));
4702 p
.PrintKeyBool("descriptorBindingInlineUniformBlockUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingInlineUniformBlockUpdateAfterBind
));
4703 p
.PrintKeyBool("pipelineCreationCacheControl", static_cast<bool>(obj
.pipelineCreationCacheControl
));
4704 p
.PrintKeyBool("privateData", static_cast<bool>(obj
.privateData
));
4705 p
.PrintKeyBool("shaderDemoteToHelperInvocation", static_cast<bool>(obj
.shaderDemoteToHelperInvocation
));
4706 p
.PrintKeyBool("shaderTerminateInvocation", static_cast<bool>(obj
.shaderTerminateInvocation
));
4707 p
.PrintKeyBool("subgroupSizeControl", static_cast<bool>(obj
.subgroupSizeControl
));
4708 p
.PrintKeyBool("computeFullSubgroups", static_cast<bool>(obj
.computeFullSubgroups
));
4709 p
.PrintKeyBool("synchronization2", static_cast<bool>(obj
.synchronization2
));
4710 p
.PrintKeyBool("textureCompressionASTC_HDR", static_cast<bool>(obj
.textureCompressionASTC_HDR
));
4711 p
.PrintKeyBool("shaderZeroInitializeWorkgroupMemory", static_cast<bool>(obj
.shaderZeroInitializeWorkgroupMemory
));
4712 p
.PrintKeyBool("dynamicRendering", static_cast<bool>(obj
.dynamicRendering
));
4713 p
.PrintKeyBool("shaderIntegerDotProduct", static_cast<bool>(obj
.shaderIntegerDotProduct
));
4714 p
.PrintKeyBool("maintenance4", static_cast<bool>(obj
.maintenance4
));
4716 void DumpVkPhysicalDeviceVulkan13Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan13Properties
&obj
) {
4717 ObjectWrapper object
{p
, name
};
4718 p
.SetMinKeyWidth(77);
4719 p
.PrintKeyValue("minSubgroupSize", obj
.minSubgroupSize
);
4720 p
.PrintKeyValue("maxSubgroupSize", obj
.maxSubgroupSize
);
4721 p
.PrintKeyValue("maxComputeWorkgroupSubgroups", obj
.maxComputeWorkgroupSubgroups
);
4722 DumpVkShaderStageFlags(p
, "requiredSubgroupSizeStages", obj
.requiredSubgroupSizeStages
);
4723 p
.PrintKeyValue("maxInlineUniformBlockSize", obj
.maxInlineUniformBlockSize
);
4724 p
.PrintKeyValue("maxPerStageDescriptorInlineUniformBlocks", obj
.maxPerStageDescriptorInlineUniformBlocks
);
4725 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks", obj
.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
);
4726 p
.PrintKeyValue("maxDescriptorSetInlineUniformBlocks", obj
.maxDescriptorSetInlineUniformBlocks
);
4727 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindInlineUniformBlocks", obj
.maxDescriptorSetUpdateAfterBindInlineUniformBlocks
);
4728 p
.PrintKeyValue("maxInlineUniformTotalSize", obj
.maxInlineUniformTotalSize
);
4729 p
.PrintKeyBool("integerDotProduct8BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct8BitUnsignedAccelerated
));
4730 p
.PrintKeyBool("integerDotProduct8BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct8BitSignedAccelerated
));
4731 p
.PrintKeyBool("integerDotProduct8BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct8BitMixedSignednessAccelerated
));
4732 p
.PrintKeyBool("integerDotProduct4x8BitPackedUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedUnsignedAccelerated
));
4733 p
.PrintKeyBool("integerDotProduct4x8BitPackedSignedAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedSignedAccelerated
));
4734 p
.PrintKeyBool("integerDotProduct4x8BitPackedMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedMixedSignednessAccelerated
));
4735 p
.PrintKeyBool("integerDotProduct16BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct16BitUnsignedAccelerated
));
4736 p
.PrintKeyBool("integerDotProduct16BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct16BitSignedAccelerated
));
4737 p
.PrintKeyBool("integerDotProduct16BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct16BitMixedSignednessAccelerated
));
4738 p
.PrintKeyBool("integerDotProduct32BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct32BitUnsignedAccelerated
));
4739 p
.PrintKeyBool("integerDotProduct32BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct32BitSignedAccelerated
));
4740 p
.PrintKeyBool("integerDotProduct32BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct32BitMixedSignednessAccelerated
));
4741 p
.PrintKeyBool("integerDotProduct64BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct64BitUnsignedAccelerated
));
4742 p
.PrintKeyBool("integerDotProduct64BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct64BitSignedAccelerated
));
4743 p
.PrintKeyBool("integerDotProduct64BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct64BitMixedSignednessAccelerated
));
4744 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated
));
4745 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitSignedAccelerated
));
4746 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated
));
4747 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated
));
4748 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated
));
4749 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated
));
4750 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated
));
4751 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitSignedAccelerated
));
4752 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated
));
4753 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated
));
4754 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitSignedAccelerated
));
4755 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated
));
4756 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated
));
4757 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitSignedAccelerated
));
4758 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated
));
4759 p
.PrintKeyValue("storageTexelBufferOffsetAlignmentBytes", to_hex_str(p
, obj
.storageTexelBufferOffsetAlignmentBytes
));
4760 p
.PrintKeyBool("storageTexelBufferOffsetSingleTexelAlignment", static_cast<bool>(obj
.storageTexelBufferOffsetSingleTexelAlignment
));
4761 p
.PrintKeyValue("uniformTexelBufferOffsetAlignmentBytes", to_hex_str(p
, obj
.uniformTexelBufferOffsetAlignmentBytes
));
4762 p
.PrintKeyBool("uniformTexelBufferOffsetSingleTexelAlignment", static_cast<bool>(obj
.uniformTexelBufferOffsetSingleTexelAlignment
));
4763 p
.PrintKeyValue("maxBufferSize", to_hex_str(p
, obj
.maxBufferSize
));
4765 void DumpVkPhysicalDeviceVulkan14Features(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan14Features
&obj
) {
4766 ObjectWrapper object
{p
, name
};
4767 p
.SetMinKeyWidth(38);
4768 p
.PrintKeyBool("globalPriorityQuery", static_cast<bool>(obj
.globalPriorityQuery
));
4769 p
.PrintKeyBool("shaderSubgroupRotate", static_cast<bool>(obj
.shaderSubgroupRotate
));
4770 p
.PrintKeyBool("shaderSubgroupRotateClustered", static_cast<bool>(obj
.shaderSubgroupRotateClustered
));
4771 p
.PrintKeyBool("shaderFloatControls2", static_cast<bool>(obj
.shaderFloatControls2
));
4772 p
.PrintKeyBool("shaderExpectAssume", static_cast<bool>(obj
.shaderExpectAssume
));
4773 p
.PrintKeyBool("rectangularLines", static_cast<bool>(obj
.rectangularLines
));
4774 p
.PrintKeyBool("bresenhamLines", static_cast<bool>(obj
.bresenhamLines
));
4775 p
.PrintKeyBool("smoothLines", static_cast<bool>(obj
.smoothLines
));
4776 p
.PrintKeyBool("stippledRectangularLines", static_cast<bool>(obj
.stippledRectangularLines
));
4777 p
.PrintKeyBool("stippledBresenhamLines", static_cast<bool>(obj
.stippledBresenhamLines
));
4778 p
.PrintKeyBool("stippledSmoothLines", static_cast<bool>(obj
.stippledSmoothLines
));
4779 p
.PrintKeyBool("vertexAttributeInstanceRateDivisor", static_cast<bool>(obj
.vertexAttributeInstanceRateDivisor
));
4780 p
.PrintKeyBool("vertexAttributeInstanceRateZeroDivisor", static_cast<bool>(obj
.vertexAttributeInstanceRateZeroDivisor
));
4781 p
.PrintKeyBool("indexTypeUint8", static_cast<bool>(obj
.indexTypeUint8
));
4782 p
.PrintKeyBool("dynamicRenderingLocalRead", static_cast<bool>(obj
.dynamicRenderingLocalRead
));
4783 p
.PrintKeyBool("maintenance5", static_cast<bool>(obj
.maintenance5
));
4784 p
.PrintKeyBool("maintenance6", static_cast<bool>(obj
.maintenance6
));
4785 p
.PrintKeyBool("pipelineProtectedAccess", static_cast<bool>(obj
.pipelineProtectedAccess
));
4786 p
.PrintKeyBool("pipelineRobustness", static_cast<bool>(obj
.pipelineRobustness
));
4787 p
.PrintKeyBool("hostImageCopy", static_cast<bool>(obj
.hostImageCopy
));
4788 p
.PrintKeyBool("pushDescriptor", static_cast<bool>(obj
.pushDescriptor
));
4790 void DumpVkPhysicalDeviceVulkan14Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan14Properties
&obj
) {
4791 ObjectWrapper object
{p
, name
};
4792 p
.SetMinKeyWidth(51);
4793 p
.PrintKeyValue("lineSubPixelPrecisionBits", obj
.lineSubPixelPrecisionBits
);
4794 p
.PrintKeyValue("maxVertexAttribDivisor", obj
.maxVertexAttribDivisor
);
4795 p
.PrintKeyBool("supportsNonZeroFirstInstance", static_cast<bool>(obj
.supportsNonZeroFirstInstance
));
4796 p
.PrintKeyValue("maxPushDescriptors", obj
.maxPushDescriptors
);
4797 p
.PrintKeyBool("dynamicRenderingLocalReadDepthStencilAttachments", static_cast<bool>(obj
.dynamicRenderingLocalReadDepthStencilAttachments
));
4798 p
.PrintKeyBool("dynamicRenderingLocalReadMultisampledAttachments", static_cast<bool>(obj
.dynamicRenderingLocalReadMultisampledAttachments
));
4799 p
.PrintKeyBool("earlyFragmentMultisampleCoverageAfterSampleCounting", static_cast<bool>(obj
.earlyFragmentMultisampleCoverageAfterSampleCounting
));
4800 p
.PrintKeyBool("earlyFragmentSampleMaskTestBeforeSampleCounting", static_cast<bool>(obj
.earlyFragmentSampleMaskTestBeforeSampleCounting
));
4801 p
.PrintKeyBool("depthStencilSwizzleOneSupport", static_cast<bool>(obj
.depthStencilSwizzleOneSupport
));
4802 p
.PrintKeyBool("polygonModePointSize", static_cast<bool>(obj
.polygonModePointSize
));
4803 p
.PrintKeyBool("nonStrictSinglePixelWideLinesUseParallelogram", static_cast<bool>(obj
.nonStrictSinglePixelWideLinesUseParallelogram
));
4804 p
.PrintKeyBool("nonStrictWideLinesUseParallelogram", static_cast<bool>(obj
.nonStrictWideLinesUseParallelogram
));
4805 p
.PrintKeyBool("blockTexelViewCompatibleMultipleLayers", static_cast<bool>(obj
.blockTexelViewCompatibleMultipleLayers
));
4806 p
.PrintKeyValue("maxCombinedImageSamplerDescriptorCount", obj
.maxCombinedImageSamplerDescriptorCount
);
4807 p
.PrintKeyBool("fragmentShadingRateClampCombinerInputs", static_cast<bool>(obj
.fragmentShadingRateClampCombinerInputs
));
4808 DumpVkPipelineRobustnessBufferBehavior(p
, "defaultRobustnessStorageBuffers", obj
.defaultRobustnessStorageBuffers
);
4809 DumpVkPipelineRobustnessBufferBehavior(p
, "defaultRobustnessUniformBuffers", obj
.defaultRobustnessUniformBuffers
);
4810 DumpVkPipelineRobustnessBufferBehavior(p
, "defaultRobustnessVertexInputs", obj
.defaultRobustnessVertexInputs
);
4811 DumpVkPipelineRobustnessImageBehavior(p
, "defaultRobustnessImages", obj
.defaultRobustnessImages
);
4812 p
.PrintKeyValue("copySrcLayoutCount", obj
.copySrcLayoutCount
);
4813 if (obj
.copySrcLayoutCount
== 0 || obj
.pCopySrcLayouts
== nullptr) {
4814 p
.PrintKeyString("pCopySrcLayouts", "NULL");
4816 ArrayWrapper
arr(p
,"pCopySrcLayouts", obj
.copySrcLayoutCount
);
4817 for (uint32_t i
= 0; i
< obj
.copySrcLayoutCount
; i
++) {
4818 DumpVkImageLayout(p
, std::to_string(i
), obj
.pCopySrcLayouts
[i
]);
4821 p
.PrintKeyValue("copyDstLayoutCount", obj
.copyDstLayoutCount
);
4822 if (obj
.copyDstLayoutCount
== 0 || obj
.pCopyDstLayouts
== nullptr) {
4823 p
.PrintKeyString("pCopyDstLayouts", "NULL");
4825 ArrayWrapper
arr(p
,"pCopyDstLayouts", obj
.copyDstLayoutCount
);
4826 for (uint32_t i
= 0; i
< obj
.copyDstLayoutCount
; i
++) {
4827 DumpVkImageLayout(p
, std::to_string(i
), obj
.pCopyDstLayouts
[i
]);
4830 p
.PrintKeyValue("optimalTilingLayoutUUID", obj
.optimalTilingLayoutUUID
);
4831 p
.PrintKeyBool("identicalMemoryTypeRequirements", static_cast<bool>(obj
.identicalMemoryTypeRequirements
));
4833 void DumpVkPhysicalDeviceVulkanMemoryModelFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkanMemoryModelFeatures
&obj
) {
4834 ObjectWrapper object
{p
, name
};
4835 p
.SetMinKeyWidth(45);
4836 p
.PrintKeyBool("vulkanMemoryModel", static_cast<bool>(obj
.vulkanMemoryModel
));
4837 p
.PrintKeyBool("vulkanMemoryModelDeviceScope", static_cast<bool>(obj
.vulkanMemoryModelDeviceScope
));
4838 p
.PrintKeyBool("vulkanMemoryModelAvailabilityVisibilityChains", static_cast<bool>(obj
.vulkanMemoryModelAvailabilityVisibilityChains
));
4840 void DumpVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
&obj
) {
4841 ObjectWrapper object
{p
, name
};
4842 p
.SetMinKeyWidth(46);
4843 p
.PrintKeyBool("workgroupMemoryExplicitLayout", static_cast<bool>(obj
.workgroupMemoryExplicitLayout
));
4844 p
.PrintKeyBool("workgroupMemoryExplicitLayoutScalarBlockLayout", static_cast<bool>(obj
.workgroupMemoryExplicitLayoutScalarBlockLayout
));
4845 p
.PrintKeyBool("workgroupMemoryExplicitLayout8BitAccess", static_cast<bool>(obj
.workgroupMemoryExplicitLayout8BitAccess
));
4846 p
.PrintKeyBool("workgroupMemoryExplicitLayout16BitAccess", static_cast<bool>(obj
.workgroupMemoryExplicitLayout16BitAccess
));
4848 void DumpVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
&obj
) {
4849 ObjectWrapper object
{p
, name
};
4850 p
.SetMinKeyWidth(21);
4851 p
.PrintKeyBool("ycbcr2plane444Formats", static_cast<bool>(obj
.ycbcr2plane444Formats
));
4853 void DumpVkPhysicalDeviceYcbcrImageArraysFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
&obj
) {
4854 ObjectWrapper object
{p
, name
};
4855 p
.SetMinKeyWidth(16);
4856 p
.PrintKeyBool("ycbcrImageArrays", static_cast<bool>(obj
.ycbcrImageArrays
));
4858 void DumpVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
&obj
) {
4859 ObjectWrapper object
{p
, name
};
4860 p
.SetMinKeyWidth(35);
4861 p
.PrintKeyBool("shaderZeroInitializeWorkgroupMemory", static_cast<bool>(obj
.shaderZeroInitializeWorkgroupMemory
));
4863 void DumpVkQueueFamilyGlobalPriorityProperties(Printer
&p
, std::string name
, const VkQueueFamilyGlobalPriorityProperties
&obj
) {
4864 ObjectWrapper object
{p
, name
};
4865 p
.SetMinKeyWidth(14);
4866 p
.PrintKeyValue("priorityCount", obj
.priorityCount
);
4867 ArrayWrapper
arr(p
,"priorities", obj
.priorityCount
);
4868 for (uint32_t i
= 0; i
< obj
.priorityCount
; i
++) {
4869 if (p
.Type() == OutputType::json
)
4870 p
.PrintString(std::string("VK_") + VkQueueGlobalPriorityString(obj
.priorities
[i
]));
4872 p
.PrintString(VkQueueGlobalPriorityString(obj
.priorities
[i
]));
4875 void DumpVkQueueFamilyQueryResultStatusPropertiesKHR(Printer
&p
, std::string name
, const VkQueueFamilyQueryResultStatusPropertiesKHR
&obj
) {
4876 ObjectWrapper object
{p
, name
};
4877 p
.SetMinKeyWidth(24);
4878 p
.PrintKeyBool("queryResultStatusSupport", static_cast<bool>(obj
.queryResultStatusSupport
));
4880 void DumpVkQueueFamilyVideoPropertiesKHR(Printer
&p
, std::string name
, const VkQueueFamilyVideoPropertiesKHR
&obj
) {
4881 ObjectWrapper object
{p
, name
};
4882 DumpVkVideoCodecOperationFlagsKHR(p
, "videoCodecOperations", obj
.videoCodecOperations
);
4884 void DumpVkSharedPresentSurfaceCapabilitiesKHR(Printer
&p
, std::string name
, const VkSharedPresentSurfaceCapabilitiesKHR
&obj
) {
4885 ObjectWrapper object
{p
, name
};
4886 DumpVkImageUsageFlags(p
, "sharedPresentSupportedUsageFlags", obj
.sharedPresentSupportedUsageFlags
);
4888 void DumpVkSubpassResolvePerformanceQueryEXT(Printer
&p
, std::string name
, const VkSubpassResolvePerformanceQueryEXT
&obj
) {
4889 ObjectWrapper object
{p
, name
};
4890 p
.SetMinKeyWidth(7);
4891 p
.PrintKeyBool("optimal", static_cast<bool>(obj
.optimal
));
4893 #ifdef VK_USE_PLATFORM_WIN32_KHR
4894 void DumpVkSurfaceCapabilitiesFullScreenExclusiveEXT(Printer
&p
, std::string name
, const VkSurfaceCapabilitiesFullScreenExclusiveEXT
&obj
) {
4895 ObjectWrapper object
{p
, name
};
4896 p
.SetMinKeyWidth(28);
4897 p
.PrintKeyBool("fullScreenExclusiveSupported", static_cast<bool>(obj
.fullScreenExclusiveSupported
));
4899 #endif // VK_USE_PLATFORM_WIN32_KHR
4900 void DumpVkSurfaceCapabilitiesKHR(Printer
&p
, std::string name
, const VkSurfaceCapabilitiesKHR
&obj
) {
4901 ObjectWrapper object
{p
, name
};
4902 p
.SetMinKeyWidth(19);
4903 p
.PrintKeyValue("minImageCount", obj
.minImageCount
);
4904 p
.PrintKeyValue("maxImageCount", obj
.maxImageCount
);
4905 DumpVkExtent2D(p
, "currentExtent", obj
.currentExtent
);
4906 DumpVkExtent2D(p
, "minImageExtent", obj
.minImageExtent
);
4907 DumpVkExtent2D(p
, "maxImageExtent", obj
.maxImageExtent
);
4908 p
.PrintKeyValue("maxImageArrayLayers", obj
.maxImageArrayLayers
);
4909 DumpVkSurfaceTransformFlagsKHR(p
, "supportedTransforms", obj
.supportedTransforms
);
4910 DumpVkSurfaceTransformFlagBitsKHR(p
, "currentTransform", obj
.currentTransform
);
4911 DumpVkCompositeAlphaFlagsKHR(p
, "supportedCompositeAlpha", obj
.supportedCompositeAlpha
);
4912 DumpVkImageUsageFlags(p
, "supportedUsageFlags", obj
.supportedUsageFlags
);
4914 void DumpVkSurfaceFormatKHR(Printer
&p
, std::string name
, const VkSurfaceFormatKHR
&obj
) {
4915 ObjectWrapper object
{p
, name
};
4916 DumpVkFormat(p
, "format", obj
.format
);
4917 DumpVkColorSpaceKHR(p
, "colorSpace", obj
.colorSpace
);
4919 void DumpVkSurfacePresentModeCompatibilityEXT(Printer
&p
, std::string name
, const VkSurfacePresentModeCompatibilityEXT
&obj
) {
4920 ObjectWrapper object
{p
, name
};
4921 p
.SetMinKeyWidth(31);
4922 p
.PrintKeyValue("presentModeCount", obj
.presentModeCount
);
4923 if (obj
.presentModeCount
== 0 || obj
.pPresentModes
== nullptr) {
4924 p
.PrintKeyString("pPresentModes", "NULL");
4926 ArrayWrapper
arr(p
,"pPresentModes", obj
.presentModeCount
);
4927 for (uint32_t i
= 0; i
< obj
.presentModeCount
; i
++) {
4928 DumpVkPresentModeKHR(p
, std::to_string(i
), obj
.pPresentModes
[i
]);
4932 void DumpVkSurfacePresentScalingCapabilitiesEXT(Printer
&p
, std::string name
, const VkSurfacePresentScalingCapabilitiesEXT
&obj
) {
4933 ObjectWrapper object
{p
, name
};
4934 DumpVkPresentScalingFlagsEXT(p
, "supportedPresentScaling", obj
.supportedPresentScaling
);
4935 DumpVkPresentGravityFlagsEXT(p
, "supportedPresentGravityX", obj
.supportedPresentGravityX
);
4936 DumpVkPresentGravityFlagsEXT(p
, "supportedPresentGravityY", obj
.supportedPresentGravityY
);
4937 DumpVkExtent2D(p
, "minScaledImageExtent", obj
.minScaledImageExtent
);
4938 DumpVkExtent2D(p
, "maxScaledImageExtent", obj
.maxScaledImageExtent
);
4940 void DumpVkSurfaceProtectedCapabilitiesKHR(Printer
&p
, std::string name
, const VkSurfaceProtectedCapabilitiesKHR
&obj
) {
4941 ObjectWrapper object
{p
, name
};
4942 p
.SetMinKeyWidth(17);
4943 p
.PrintKeyBool("supportsProtected", static_cast<bool>(obj
.supportsProtected
));
4945 void DumpVkVideoCapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoCapabilitiesKHR
&obj
) {
4946 ObjectWrapper object
{p
, name
};
4947 p
.SetMinKeyWidth(33);
4948 DumpVkVideoCapabilityFlagsKHR(p
, "flags", obj
.flags
);
4949 p
.PrintKeyValue("minBitstreamBufferOffsetAlignment", to_hex_str(p
, obj
.minBitstreamBufferOffsetAlignment
));
4950 p
.PrintKeyValue("minBitstreamBufferSizeAlignment", to_hex_str(p
, obj
.minBitstreamBufferSizeAlignment
));
4951 DumpVkExtent2D(p
, "pictureAccessGranularity", obj
.pictureAccessGranularity
);
4952 DumpVkExtent2D(p
, "minCodedExtent", obj
.minCodedExtent
);
4953 DumpVkExtent2D(p
, "maxCodedExtent", obj
.maxCodedExtent
);
4954 p
.PrintKeyValue("maxDpbSlots", obj
.maxDpbSlots
);
4955 p
.PrintKeyValue("maxActiveReferencePictures", obj
.maxActiveReferencePictures
);
4956 DumpVkExtensionProperties(p
, "stdHeaderVersion", obj
.stdHeaderVersion
);
4958 void DumpVkVideoDecodeAV1CapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoDecodeAV1CapabilitiesKHR
&obj
) {
4959 ObjectWrapper object
{p
, name
};
4960 DumpStdVideoAV1Level(p
, "maxLevel", obj
.maxLevel
);
4962 void DumpVkVideoDecodeAV1ProfileInfoKHR(Printer
&p
, std::string name
, const VkVideoDecodeAV1ProfileInfoKHR
&obj
) {
4963 ObjectWrapper object
{p
, name
};
4964 p
.SetMinKeyWidth(16);
4965 DumpStdVideoAV1Profile(p
, "stdProfile", obj
.stdProfile
);
4966 p
.PrintKeyBool("filmGrainSupport", static_cast<bool>(obj
.filmGrainSupport
));
4968 void DumpVkVideoDecodeCapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoDecodeCapabilitiesKHR
&obj
) {
4969 ObjectWrapper object
{p
, name
};
4970 DumpVkVideoDecodeCapabilityFlagsKHR(p
, "flags", obj
.flags
);
4972 void DumpVkVideoDecodeH264CapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoDecodeH264CapabilitiesKHR
&obj
) {
4973 ObjectWrapper object
{p
, name
};
4974 DumpStdVideoH264LevelIdc(p
, "maxLevelIdc", obj
.maxLevelIdc
);
4975 DumpVkOffset2D(p
, "fieldOffsetGranularity", obj
.fieldOffsetGranularity
);
4977 void DumpVkVideoDecodeH264ProfileInfoKHR(Printer
&p
, std::string name
, const VkVideoDecodeH264ProfileInfoKHR
&obj
) {
4978 ObjectWrapper object
{p
, name
};
4979 DumpStdVideoH264ProfileIdc(p
, "stdProfileIdc", obj
.stdProfileIdc
);
4980 DumpVkVideoDecodeH264PictureLayoutFlagBitsKHR(p
, "pictureLayout", obj
.pictureLayout
);
4982 void DumpVkVideoDecodeH265CapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoDecodeH265CapabilitiesKHR
&obj
) {
4983 ObjectWrapper object
{p
, name
};
4984 DumpStdVideoH265LevelIdc(p
, "maxLevelIdc", obj
.maxLevelIdc
);
4986 void DumpVkVideoDecodeH265ProfileInfoKHR(Printer
&p
, std::string name
, const VkVideoDecodeH265ProfileInfoKHR
&obj
) {
4987 ObjectWrapper object
{p
, name
};
4988 DumpStdVideoH265ProfileIdc(p
, "stdProfileIdc", obj
.stdProfileIdc
);
4990 void DumpVkVideoDecodeUsageInfoKHR(Printer
&p
, std::string name
, const VkVideoDecodeUsageInfoKHR
&obj
) {
4991 ObjectWrapper object
{p
, name
};
4992 DumpVkVideoDecodeUsageFlagsKHR(p
, "videoUsageHints", obj
.videoUsageHints
);
4994 void DumpVkVideoEncodeAV1CapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoEncodeAV1CapabilitiesKHR
&obj
) {
4995 ObjectWrapper object
{p
, name
};
4996 p
.SetMinKeyWidth(45);
4997 DumpVkVideoEncodeAV1CapabilityFlagsKHR(p
, "flags", obj
.flags
);
4998 DumpStdVideoAV1Level(p
, "maxLevel", obj
.maxLevel
);
4999 DumpVkExtent2D(p
, "codedPictureAlignment", obj
.codedPictureAlignment
);
5000 DumpVkExtent2D(p
, "maxTiles", obj
.maxTiles
);
5001 DumpVkExtent2D(p
, "minTileSize", obj
.minTileSize
);
5002 DumpVkExtent2D(p
, "maxTileSize", obj
.maxTileSize
);
5003 DumpVkVideoEncodeAV1SuperblockSizeFlagsKHR(p
, "superblockSizes", obj
.superblockSizes
);
5004 p
.PrintKeyValue("maxSingleReferenceCount", obj
.maxSingleReferenceCount
);
5005 p
.PrintKeyValue("singleReferenceNameMask", obj
.singleReferenceNameMask
);
5006 p
.PrintKeyValue("maxUnidirectionalCompoundReferenceCount", obj
.maxUnidirectionalCompoundReferenceCount
);
5007 p
.PrintKeyValue("maxUnidirectionalCompoundGroup1ReferenceCount", obj
.maxUnidirectionalCompoundGroup1ReferenceCount
);
5008 p
.PrintKeyValue("unidirectionalCompoundReferenceNameMask", obj
.unidirectionalCompoundReferenceNameMask
);
5009 p
.PrintKeyValue("maxBidirectionalCompoundReferenceCount", obj
.maxBidirectionalCompoundReferenceCount
);
5010 p
.PrintKeyValue("maxBidirectionalCompoundGroup1ReferenceCount", obj
.maxBidirectionalCompoundGroup1ReferenceCount
);
5011 p
.PrintKeyValue("maxBidirectionalCompoundGroup2ReferenceCount", obj
.maxBidirectionalCompoundGroup2ReferenceCount
);
5012 p
.PrintKeyValue("bidirectionalCompoundReferenceNameMask", obj
.bidirectionalCompoundReferenceNameMask
);
5013 p
.PrintKeyValue("maxTemporalLayerCount", obj
.maxTemporalLayerCount
);
5014 p
.PrintKeyValue("maxSpatialLayerCount", obj
.maxSpatialLayerCount
);
5015 p
.PrintKeyValue("maxOperatingPoints", obj
.maxOperatingPoints
);
5016 p
.PrintKeyValue("minQIndex", obj
.minQIndex
);
5017 p
.PrintKeyValue("maxQIndex", obj
.maxQIndex
);
5018 p
.PrintKeyBool("prefersGopRemainingFrames", static_cast<bool>(obj
.prefersGopRemainingFrames
));
5019 p
.PrintKeyBool("requiresGopRemainingFrames", static_cast<bool>(obj
.requiresGopRemainingFrames
));
5020 DumpVkVideoEncodeAV1StdFlagsKHR(p
, "stdSyntaxFlags", obj
.stdSyntaxFlags
);
5022 void DumpVkVideoEncodeAV1ProfileInfoKHR(Printer
&p
, std::string name
, const VkVideoEncodeAV1ProfileInfoKHR
&obj
) {
5023 ObjectWrapper object
{p
, name
};
5024 DumpStdVideoAV1Profile(p
, "stdProfile", obj
.stdProfile
);
5026 void DumpVkVideoEncodeAV1QuantizationMapCapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoEncodeAV1QuantizationMapCapabilitiesKHR
&obj
) {
5027 ObjectWrapper object
{p
, name
};
5028 p
.SetMinKeyWidth(14);
5029 p
.PrintKeyValue("minQIndexDelta", obj
.minQIndexDelta
);
5030 p
.PrintKeyValue("maxQIndexDelta", obj
.maxQIndexDelta
);
5032 void DumpVkVideoEncodeCapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoEncodeCapabilitiesKHR
&obj
) {
5033 ObjectWrapper object
{p
, name
};
5034 p
.SetMinKeyWidth(20);
5035 DumpVkVideoEncodeCapabilityFlagsKHR(p
, "flags", obj
.flags
);
5036 DumpVkVideoEncodeRateControlModeFlagsKHR(p
, "rateControlModes", obj
.rateControlModes
);
5037 p
.PrintKeyValue("maxRateControlLayers", obj
.maxRateControlLayers
);
5038 p
.PrintKeyValue("maxBitrate", obj
.maxBitrate
);
5039 p
.PrintKeyValue("maxQualityLevels", obj
.maxQualityLevels
);
5040 DumpVkExtent2D(p
, "encodeInputPictureGranularity", obj
.encodeInputPictureGranularity
);
5041 DumpVkVideoEncodeFeedbackFlagsKHR(p
, "supportedEncodeFeedbackFlags", obj
.supportedEncodeFeedbackFlags
);
5043 void DumpVkVideoEncodeH264CapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoEncodeH264CapabilitiesKHR
&obj
) {
5044 ObjectWrapper object
{p
, name
};
5045 p
.SetMinKeyWidth(32);
5046 DumpVkVideoEncodeH264CapabilityFlagsKHR(p
, "flags", obj
.flags
);
5047 DumpStdVideoH264LevelIdc(p
, "maxLevelIdc", obj
.maxLevelIdc
);
5048 p
.PrintKeyValue("maxSliceCount", obj
.maxSliceCount
);
5049 p
.PrintKeyValue("maxPPictureL0ReferenceCount", obj
.maxPPictureL0ReferenceCount
);
5050 p
.PrintKeyValue("maxBPictureL0ReferenceCount", obj
.maxBPictureL0ReferenceCount
);
5051 p
.PrintKeyValue("maxL1ReferenceCount", obj
.maxL1ReferenceCount
);
5052 p
.PrintKeyValue("maxTemporalLayerCount", obj
.maxTemporalLayerCount
);
5053 p
.PrintKeyBool("expectDyadicTemporalLayerPattern", static_cast<bool>(obj
.expectDyadicTemporalLayerPattern
));
5054 p
.PrintKeyValue("minQp", obj
.minQp
);
5055 p
.PrintKeyValue("maxQp", obj
.maxQp
);
5056 p
.PrintKeyBool("prefersGopRemainingFrames", static_cast<bool>(obj
.prefersGopRemainingFrames
));
5057 p
.PrintKeyBool("requiresGopRemainingFrames", static_cast<bool>(obj
.requiresGopRemainingFrames
));
5058 DumpVkVideoEncodeH264StdFlagsKHR(p
, "stdSyntaxFlags", obj
.stdSyntaxFlags
);
5060 void DumpVkVideoEncodeH264ProfileInfoKHR(Printer
&p
, std::string name
, const VkVideoEncodeH264ProfileInfoKHR
&obj
) {
5061 ObjectWrapper object
{p
, name
};
5062 DumpStdVideoH264ProfileIdc(p
, "stdProfileIdc", obj
.stdProfileIdc
);
5064 void DumpVkVideoEncodeH264QuantizationMapCapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoEncodeH264QuantizationMapCapabilitiesKHR
&obj
) {
5065 ObjectWrapper object
{p
, name
};
5066 p
.SetMinKeyWidth(10);
5067 p
.PrintKeyValue("minQpDelta", obj
.minQpDelta
);
5068 p
.PrintKeyValue("maxQpDelta", obj
.maxQpDelta
);
5070 void DumpVkVideoEncodeH265CapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoEncodeH265CapabilitiesKHR
&obj
) {
5071 ObjectWrapper object
{p
, name
};
5072 p
.SetMinKeyWidth(35);
5073 DumpVkVideoEncodeH265CapabilityFlagsKHR(p
, "flags", obj
.flags
);
5074 DumpStdVideoH265LevelIdc(p
, "maxLevelIdc", obj
.maxLevelIdc
);
5075 p
.PrintKeyValue("maxSliceSegmentCount", obj
.maxSliceSegmentCount
);
5076 DumpVkExtent2D(p
, "maxTiles", obj
.maxTiles
);
5077 DumpVkVideoEncodeH265CtbSizeFlagsKHR(p
, "ctbSizes", obj
.ctbSizes
);
5078 DumpVkVideoEncodeH265TransformBlockSizeFlagsKHR(p
, "transformBlockSizes", obj
.transformBlockSizes
);
5079 p
.PrintKeyValue("maxPPictureL0ReferenceCount", obj
.maxPPictureL0ReferenceCount
);
5080 p
.PrintKeyValue("maxBPictureL0ReferenceCount", obj
.maxBPictureL0ReferenceCount
);
5081 p
.PrintKeyValue("maxL1ReferenceCount", obj
.maxL1ReferenceCount
);
5082 p
.PrintKeyValue("maxSubLayerCount", obj
.maxSubLayerCount
);
5083 p
.PrintKeyBool("expectDyadicTemporalSubLayerPattern", static_cast<bool>(obj
.expectDyadicTemporalSubLayerPattern
));
5084 p
.PrintKeyValue("minQp", obj
.minQp
);
5085 p
.PrintKeyValue("maxQp", obj
.maxQp
);
5086 p
.PrintKeyBool("prefersGopRemainingFrames", static_cast<bool>(obj
.prefersGopRemainingFrames
));
5087 p
.PrintKeyBool("requiresGopRemainingFrames", static_cast<bool>(obj
.requiresGopRemainingFrames
));
5088 DumpVkVideoEncodeH265StdFlagsKHR(p
, "stdSyntaxFlags", obj
.stdSyntaxFlags
);
5090 void DumpVkVideoEncodeH265ProfileInfoKHR(Printer
&p
, std::string name
, const VkVideoEncodeH265ProfileInfoKHR
&obj
) {
5091 ObjectWrapper object
{p
, name
};
5092 DumpStdVideoH265ProfileIdc(p
, "stdProfileIdc", obj
.stdProfileIdc
);
5094 void DumpVkVideoEncodeH265QuantizationMapCapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoEncodeH265QuantizationMapCapabilitiesKHR
&obj
) {
5095 ObjectWrapper object
{p
, name
};
5096 p
.SetMinKeyWidth(10);
5097 p
.PrintKeyValue("minQpDelta", obj
.minQpDelta
);
5098 p
.PrintKeyValue("maxQpDelta", obj
.maxQpDelta
);
5100 void DumpVkVideoEncodeQuantizationMapCapabilitiesKHR(Printer
&p
, std::string name
, const VkVideoEncodeQuantizationMapCapabilitiesKHR
&obj
) {
5101 ObjectWrapper object
{p
, name
};
5102 DumpVkExtent2D(p
, "maxQuantizationMapExtent", obj
.maxQuantizationMapExtent
);
5104 void DumpVkVideoEncodeUsageInfoKHR(Printer
&p
, std::string name
, const VkVideoEncodeUsageInfoKHR
&obj
) {
5105 ObjectWrapper object
{p
, name
};
5106 DumpVkVideoEncodeUsageFlagsKHR(p
, "videoUsageHints", obj
.videoUsageHints
);
5107 DumpVkVideoEncodeContentFlagsKHR(p
, "videoContentHints", obj
.videoContentHints
);
5108 DumpVkVideoEncodeTuningModeKHR(p
, "tuningMode", obj
.tuningMode
);
5110 void DumpVkVideoFormatAV1QuantizationMapPropertiesKHR(Printer
&p
, std::string name
, const VkVideoFormatAV1QuantizationMapPropertiesKHR
&obj
) {
5111 ObjectWrapper object
{p
, name
};
5112 DumpVkVideoEncodeAV1SuperblockSizeFlagsKHR(p
, "compatibleSuperblockSizes", obj
.compatibleSuperblockSizes
);
5114 void DumpVkVideoFormatH265QuantizationMapPropertiesKHR(Printer
&p
, std::string name
, const VkVideoFormatH265QuantizationMapPropertiesKHR
&obj
) {
5115 ObjectWrapper object
{p
, name
};
5116 DumpVkVideoEncodeH265CtbSizeFlagsKHR(p
, "compatibleCtbSizes", obj
.compatibleCtbSizes
);
5118 void DumpVkVideoFormatPropertiesKHR(Printer
&p
, std::string name
, const VkVideoFormatPropertiesKHR
&obj
) {
5119 ObjectWrapper object
{p
, name
};
5120 DumpVkFormat(p
, "format", obj
.format
);
5121 DumpVkComponentMapping(p
, "componentMapping", obj
.componentMapping
);
5122 DumpVkImageCreateFlags(p
, "imageCreateFlags", obj
.imageCreateFlags
);
5123 DumpVkImageType(p
, "imageType", obj
.imageType
);
5124 DumpVkImageTiling(p
, "imageTiling", obj
.imageTiling
);
5125 DumpVkImageUsageFlags(p
, "imageUsageFlags", obj
.imageUsageFlags
);
5127 void DumpVkVideoFormatQuantizationMapPropertiesKHR(Printer
&p
, std::string name
, const VkVideoFormatQuantizationMapPropertiesKHR
&obj
) {
5128 ObjectWrapper object
{p
, name
};
5129 DumpVkExtent2D(p
, "quantizationMapTexelSize", obj
.quantizationMapTexelSize
);
5131 void DumpVkVideoProfileInfoKHR(Printer
&p
, std::string name
, const VkVideoProfileInfoKHR
&obj
) {
5132 ObjectWrapper object
{p
, name
};
5133 DumpVkVideoCodecOperationFlagBitsKHR(p
, "videoCodecOperation", obj
.videoCodecOperation
);
5134 DumpVkVideoChromaSubsamplingFlagsKHR(p
, "chromaSubsampling", obj
.chromaSubsampling
);
5135 DumpVkVideoComponentBitDepthFlagsKHR(p
, "lumaBitDepth", obj
.lumaBitDepth
);
5136 DumpVkVideoComponentBitDepthFlagsKHR(p
, "chromaBitDepth", obj
.chromaBitDepth
);
5138 struct phys_device_props2_chain
{
5139 phys_device_props2_chain() = default;
5140 phys_device_props2_chain(const phys_device_props2_chain
&) = delete;
5141 phys_device_props2_chain
& operator=(const phys_device_props2_chain
&) = delete;
5142 phys_device_props2_chain(phys_device_props2_chain
&&) = delete;
5143 phys_device_props2_chain
& operator=(phys_device_props2_chain
&&) = delete;
5144 void* start_of_chain
= nullptr;
5145 VkPhysicalDeviceAccelerationStructurePropertiesKHR PhysicalDeviceAccelerationStructurePropertiesKHR
{};
5146 VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT PhysicalDeviceBlendOperationAdvancedPropertiesEXT
{};
5147 VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR PhysicalDeviceComputeShaderDerivativesPropertiesKHR
{};
5148 VkPhysicalDeviceConservativeRasterizationPropertiesEXT PhysicalDeviceConservativeRasterizationPropertiesEXT
{};
5149 VkPhysicalDeviceCooperativeMatrixPropertiesKHR PhysicalDeviceCooperativeMatrixPropertiesKHR
{};
5150 VkPhysicalDeviceCustomBorderColorPropertiesEXT PhysicalDeviceCustomBorderColorPropertiesEXT
{};
5151 VkPhysicalDeviceDepthStencilResolveProperties PhysicalDeviceDepthStencilResolveProperties
{};
5152 VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
{};
5153 VkPhysicalDeviceDescriptorBufferPropertiesEXT PhysicalDeviceDescriptorBufferPropertiesEXT
{};
5154 VkPhysicalDeviceDescriptorIndexingProperties PhysicalDeviceDescriptorIndexingProperties
{};
5155 VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
{};
5156 VkPhysicalDeviceDiscardRectanglePropertiesEXT PhysicalDeviceDiscardRectanglePropertiesEXT
{};
5157 VkPhysicalDeviceDriverProperties PhysicalDeviceDriverProperties
{};
5158 VkPhysicalDeviceDrmPropertiesEXT PhysicalDeviceDrmPropertiesEXT
{};
5159 VkPhysicalDeviceExtendedDynamicState3PropertiesEXT PhysicalDeviceExtendedDynamicState3PropertiesEXT
{};
5160 VkPhysicalDeviceExternalMemoryHostPropertiesEXT PhysicalDeviceExternalMemoryHostPropertiesEXT
{};
5161 VkPhysicalDeviceFloatControlsProperties PhysicalDeviceFloatControlsProperties
{};
5162 VkPhysicalDeviceFragmentDensityMap2PropertiesEXT PhysicalDeviceFragmentDensityMap2PropertiesEXT
{};
5163 VkPhysicalDeviceFragmentDensityMapPropertiesEXT PhysicalDeviceFragmentDensityMapPropertiesEXT
{};
5164 VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
{};
5165 VkPhysicalDeviceFragmentShadingRatePropertiesKHR PhysicalDeviceFragmentShadingRatePropertiesKHR
{};
5166 VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
{};
5167 VkPhysicalDeviceHostImageCopyProperties PhysicalDeviceHostImageCopyProperties
{};
5168 std::vector
<VkImageLayout
> VkPhysicalDeviceHostImageCopyProperties_pCopySrcLayouts
;
5169 std::vector
<VkImageLayout
> VkPhysicalDeviceHostImageCopyProperties_pCopyDstLayouts
;
5170 VkPhysicalDeviceIDProperties PhysicalDeviceIDProperties
{};
5171 VkPhysicalDeviceInlineUniformBlockProperties PhysicalDeviceInlineUniformBlockProperties
{};
5172 VkPhysicalDeviceLayeredApiPropertiesListKHR PhysicalDeviceLayeredApiPropertiesListKHR
{};
5173 std::vector
<VkPhysicalDeviceLayeredApiPropertiesKHR
> VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis
;
5174 VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT PhysicalDeviceLegacyVertexAttributesPropertiesEXT
{};
5175 VkPhysicalDeviceLineRasterizationProperties PhysicalDeviceLineRasterizationProperties
{};
5176 VkPhysicalDeviceMaintenance3Properties PhysicalDeviceMaintenance3Properties
{};
5177 VkPhysicalDeviceMaintenance4Properties PhysicalDeviceMaintenance4Properties
{};
5178 VkPhysicalDeviceMaintenance5Properties PhysicalDeviceMaintenance5Properties
{};
5179 VkPhysicalDeviceMaintenance6Properties PhysicalDeviceMaintenance6Properties
{};
5180 VkPhysicalDeviceMaintenance7PropertiesKHR PhysicalDeviceMaintenance7PropertiesKHR
{};
5181 VkPhysicalDeviceMapMemoryPlacedPropertiesEXT PhysicalDeviceMapMemoryPlacedPropertiesEXT
{};
5182 VkPhysicalDeviceMeshShaderPropertiesEXT PhysicalDeviceMeshShaderPropertiesEXT
{};
5183 VkPhysicalDeviceMultiDrawPropertiesEXT PhysicalDeviceMultiDrawPropertiesEXT
{};
5184 VkPhysicalDeviceMultiviewProperties PhysicalDeviceMultiviewProperties
{};
5185 VkPhysicalDeviceNestedCommandBufferPropertiesEXT PhysicalDeviceNestedCommandBufferPropertiesEXT
{};
5186 VkPhysicalDeviceOpacityMicromapPropertiesEXT PhysicalDeviceOpacityMicromapPropertiesEXT
{};
5187 VkPhysicalDevicePCIBusInfoPropertiesEXT PhysicalDevicePCIBusInfoPropertiesEXT
{};
5188 VkPhysicalDevicePerformanceQueryPropertiesKHR PhysicalDevicePerformanceQueryPropertiesKHR
{};
5189 VkPhysicalDevicePipelineBinaryPropertiesKHR PhysicalDevicePipelineBinaryPropertiesKHR
{};
5190 VkPhysicalDevicePipelineRobustnessProperties PhysicalDevicePipelineRobustnessProperties
{};
5191 VkPhysicalDevicePointClippingProperties PhysicalDevicePointClippingProperties
{};
5192 #ifdef VK_ENABLE_BETA_EXTENSIONS
5193 VkPhysicalDevicePortabilitySubsetPropertiesKHR PhysicalDevicePortabilitySubsetPropertiesKHR
{};
5194 #endif // VK_ENABLE_BETA_EXTENSIONS
5195 VkPhysicalDeviceProtectedMemoryProperties PhysicalDeviceProtectedMemoryProperties
{};
5196 VkPhysicalDeviceProvokingVertexPropertiesEXT PhysicalDeviceProvokingVertexPropertiesEXT
{};
5197 VkPhysicalDevicePushDescriptorProperties PhysicalDevicePushDescriptorProperties
{};
5198 VkPhysicalDeviceRayTracingPipelinePropertiesKHR PhysicalDeviceRayTracingPipelinePropertiesKHR
{};
5199 VkPhysicalDeviceRobustness2PropertiesEXT PhysicalDeviceRobustness2PropertiesEXT
{};
5200 VkPhysicalDeviceSampleLocationsPropertiesEXT PhysicalDeviceSampleLocationsPropertiesEXT
{};
5201 VkPhysicalDeviceSamplerFilterMinmaxProperties PhysicalDeviceSamplerFilterMinmaxProperties
{};
5202 VkPhysicalDeviceShaderIntegerDotProductProperties PhysicalDeviceShaderIntegerDotProductProperties
{};
5203 VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT PhysicalDeviceShaderModuleIdentifierPropertiesEXT
{};
5204 VkPhysicalDeviceShaderObjectPropertiesEXT PhysicalDeviceShaderObjectPropertiesEXT
{};
5205 VkPhysicalDeviceShaderTileImagePropertiesEXT PhysicalDeviceShaderTileImagePropertiesEXT
{};
5206 VkPhysicalDeviceSubgroupProperties PhysicalDeviceSubgroupProperties
{};
5207 VkPhysicalDeviceSubgroupSizeControlProperties PhysicalDeviceSubgroupSizeControlProperties
{};
5208 VkPhysicalDeviceTexelBufferAlignmentProperties PhysicalDeviceTexelBufferAlignmentProperties
{};
5209 VkPhysicalDeviceTimelineSemaphoreProperties PhysicalDeviceTimelineSemaphoreProperties
{};
5210 VkPhysicalDeviceTransformFeedbackPropertiesEXT PhysicalDeviceTransformFeedbackPropertiesEXT
{};
5211 VkPhysicalDeviceVertexAttributeDivisorProperties PhysicalDeviceVertexAttributeDivisorProperties
{};
5212 VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT PhysicalDeviceVertexAttributeDivisorPropertiesEXT
{};
5213 VkPhysicalDeviceVulkan11Properties PhysicalDeviceVulkan11Properties
{};
5214 VkPhysicalDeviceVulkan12Properties PhysicalDeviceVulkan12Properties
{};
5215 VkPhysicalDeviceVulkan13Properties PhysicalDeviceVulkan13Properties
{};
5216 VkPhysicalDeviceVulkan14Properties PhysicalDeviceVulkan14Properties
{};
5217 std::vector
<VkImageLayout
> VkPhysicalDeviceVulkan14Properties_pCopySrcLayouts
;
5218 std::vector
<VkImageLayout
> VkPhysicalDeviceVulkan14Properties_pCopyDstLayouts
;
5219 void initialize_chain(AppInstance
&inst
, AppGpu
&gpu
, bool show_promoted_structs
) noexcept
{
5220 PhysicalDeviceAccelerationStructurePropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
;
5221 PhysicalDeviceBlendOperationAdvancedPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
;
5222 PhysicalDeviceComputeShaderDerivativesPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
;
5223 PhysicalDeviceConservativeRasterizationPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
;
5224 PhysicalDeviceCooperativeMatrixPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
;
5225 PhysicalDeviceCustomBorderColorPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
;
5226 PhysicalDeviceDepthStencilResolveProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
;
5227 PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
;
5228 PhysicalDeviceDescriptorBufferPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
;
5229 PhysicalDeviceDescriptorIndexingProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
;
5230 PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT
;
5231 PhysicalDeviceDiscardRectanglePropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
;
5232 PhysicalDeviceDriverProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
;
5233 PhysicalDeviceDrmPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
;
5234 PhysicalDeviceExtendedDynamicState3PropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
;
5235 PhysicalDeviceExternalMemoryHostPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
;
5236 PhysicalDeviceFloatControlsProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
;
5237 PhysicalDeviceFragmentDensityMap2PropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
;
5238 PhysicalDeviceFragmentDensityMapPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
;
5239 PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
;
5240 PhysicalDeviceFragmentShadingRatePropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
;
5241 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
;
5242 PhysicalDeviceHostImageCopyProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES
;
5243 PhysicalDeviceIDProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
;
5244 PhysicalDeviceInlineUniformBlockProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
;
5245 PhysicalDeviceLayeredApiPropertiesListKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
;
5246 PhysicalDeviceLegacyVertexAttributesPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
;
5247 PhysicalDeviceLineRasterizationProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES
;
5248 PhysicalDeviceMaintenance3Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
;
5249 PhysicalDeviceMaintenance4Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
;
5250 PhysicalDeviceMaintenance5Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES
;
5251 PhysicalDeviceMaintenance6Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES
;
5252 PhysicalDeviceMaintenance7PropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
;
5253 PhysicalDeviceMapMemoryPlacedPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT
;
5254 PhysicalDeviceMeshShaderPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
;
5255 PhysicalDeviceMultiDrawPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
;
5256 PhysicalDeviceMultiviewProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
;
5257 PhysicalDeviceNestedCommandBufferPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
;
5258 PhysicalDeviceOpacityMicromapPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
;
5259 PhysicalDevicePCIBusInfoPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
;
5260 PhysicalDevicePerformanceQueryPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
;
5261 PhysicalDevicePipelineBinaryPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
;
5262 PhysicalDevicePipelineRobustnessProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES
;
5263 PhysicalDevicePointClippingProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
;
5264 #ifdef VK_ENABLE_BETA_EXTENSIONS
5265 PhysicalDevicePortabilitySubsetPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
;
5266 #endif // VK_ENABLE_BETA_EXTENSIONS
5267 PhysicalDeviceProtectedMemoryProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
;
5268 PhysicalDeviceProvokingVertexPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
;
5269 PhysicalDevicePushDescriptorProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES
;
5270 PhysicalDeviceRayTracingPipelinePropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
;
5271 PhysicalDeviceRobustness2PropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
;
5272 PhysicalDeviceSampleLocationsPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
;
5273 PhysicalDeviceSamplerFilterMinmaxProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
;
5274 PhysicalDeviceShaderIntegerDotProductProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
;
5275 PhysicalDeviceShaderModuleIdentifierPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
;
5276 PhysicalDeviceShaderObjectPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
;
5277 PhysicalDeviceShaderTileImagePropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
;
5278 PhysicalDeviceSubgroupProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
;
5279 PhysicalDeviceSubgroupSizeControlProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
;
5280 PhysicalDeviceTexelBufferAlignmentProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
;
5281 PhysicalDeviceTimelineSemaphoreProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
;
5282 PhysicalDeviceTransformFeedbackPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
;
5283 PhysicalDeviceVertexAttributeDivisorProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES
;
5284 PhysicalDeviceVertexAttributeDivisorPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
;
5285 PhysicalDeviceVulkan11Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
;
5286 PhysicalDeviceVulkan12Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
;
5287 PhysicalDeviceVulkan13Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
;
5288 PhysicalDeviceVulkan14Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES
;
5289 std::vector
<VkBaseOutStructure
*> chain_members
{};
5290 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
))
5291 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAccelerationStructurePropertiesKHR
));
5292 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME
))
5293 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBlendOperationAdvancedPropertiesEXT
));
5294 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
))
5295 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceComputeShaderDerivativesPropertiesKHR
));
5296 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME
))
5297 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceConservativeRasterizationPropertiesEXT
));
5298 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME
))
5299 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceCooperativeMatrixPropertiesKHR
));
5300 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME
))
5301 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceCustomBorderColorPropertiesEXT
));
5302 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME
))
5303 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
5304 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthStencilResolveProperties
));
5305 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
))
5306 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
));
5307 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
))
5308 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorBufferPropertiesEXT
));
5309 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
))
5310 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
5311 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorIndexingProperties
));
5312 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
))
5313 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
));
5314 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME
))
5315 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDiscardRectanglePropertiesEXT
));
5316 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME
))
5317 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
5318 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDriverProperties
));
5319 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME
))
5320 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDrmPropertiesEXT
));
5321 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME
))
5322 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExtendedDynamicState3PropertiesEXT
));
5323 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME
))
5324 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExternalMemoryHostPropertiesEXT
));
5325 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
))
5326 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
5327 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFloatControlsProperties
));
5328 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME
))
5329 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentDensityMap2PropertiesEXT
));
5330 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME
))
5331 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentDensityMapPropertiesEXT
));
5332 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
))
5333 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
));
5334 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME
))
5335 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShadingRatePropertiesKHR
));
5336 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME
))
5337 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
));
5338 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME
))
5339 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
5340 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceHostImageCopyProperties
));
5341 if ((inst
.CheckExtensionEnabled(VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME
)
5342 || inst
.CheckExtensionEnabled(VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME
)
5343 || inst
.CheckExtensionEnabled(VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME
))
5344 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
5345 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceIDProperties
));
5346 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME
))
5347 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
5348 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceInlineUniformBlockProperties
));
5349 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME
))
5350 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLayeredApiPropertiesListKHR
));
5351 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME
))
5352 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLegacyVertexAttributesPropertiesEXT
));
5353 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME
)
5354 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME
))
5355 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
5356 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLineRasterizationProperties
));
5357 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_3_EXTENSION_NAME
))
5358 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
5359 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance3Properties
));
5360 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_4_EXTENSION_NAME
))
5361 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
5362 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance4Properties
));
5363 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_5_EXTENSION_NAME
))
5364 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
5365 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance5Properties
));
5366 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_6_EXTENSION_NAME
))
5367 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
5368 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance6Properties
));
5369 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME
))
5370 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance7PropertiesKHR
));
5371 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME
))
5372 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMapMemoryPlacedPropertiesEXT
));
5373 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MESH_SHADER_EXTENSION_NAME
))
5374 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMeshShaderPropertiesEXT
));
5375 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MULTI_DRAW_EXTENSION_NAME
))
5376 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultiDrawPropertiesEXT
));
5377 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MULTIVIEW_EXTENSION_NAME
))
5378 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
5379 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultiviewProperties
));
5380 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME
))
5381 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceNestedCommandBufferPropertiesEXT
));
5382 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME
))
5383 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceOpacityMicromapPropertiesEXT
));
5384 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PCI_BUS_INFO_EXTENSION_NAME
))
5385 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePCIBusInfoPropertiesEXT
));
5386 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
))
5387 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePerformanceQueryPropertiesKHR
));
5388 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PIPELINE_BINARY_EXTENSION_NAME
))
5389 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineBinaryPropertiesKHR
));
5390 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME
))
5391 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
5392 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineRobustnessProperties
));
5393 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_2_EXTENSION_NAME
))
5394 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
5395 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePointClippingProperties
));
5396 #ifdef VK_ENABLE_BETA_EXTENSIONS
5397 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
))
5398 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePortabilitySubsetPropertiesKHR
));
5399 #endif // VK_ENABLE_BETA_EXTENSIONS
5400 if (gpu
.api_version
== VK_API_VERSION_1_1
|| show_promoted_structs
)
5401 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceProtectedMemoryProperties
));
5402 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME
))
5403 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceProvokingVertexPropertiesEXT
));
5404 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME
))
5405 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
5406 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePushDescriptorProperties
));
5407 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
))
5408 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayTracingPipelinePropertiesKHR
));
5409 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME
))
5410 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRobustness2PropertiesEXT
));
5411 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME
))
5412 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSampleLocationsPropertiesEXT
));
5413 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME
))
5414 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
5415 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSamplerFilterMinmaxProperties
));
5416 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
))
5417 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
5418 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderIntegerDotProductProperties
));
5419 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME
))
5420 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderModuleIdentifierPropertiesEXT
));
5421 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_OBJECT_EXTENSION_NAME
))
5422 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderObjectPropertiesEXT
));
5423 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME
))
5424 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderTileImagePropertiesEXT
));
5425 if (gpu
.api_version
== VK_API_VERSION_1_1
|| show_promoted_structs
)
5426 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSubgroupProperties
));
5427 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME
))
5428 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
5429 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSubgroupSizeControlProperties
));
5430 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME
))
5431 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
5432 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTexelBufferAlignmentProperties
));
5433 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME
))
5434 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
5435 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTimelineSemaphoreProperties
));
5436 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
))
5437 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTransformFeedbackPropertiesEXT
));
5438 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
))
5439 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
5440 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexAttributeDivisorProperties
));
5441 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
))
5442 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexAttributeDivisorPropertiesEXT
));
5443 if ((gpu
.api_version
>= VK_API_VERSION_1_2
))
5444 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan11Properties
));
5445 if ((gpu
.api_version
>= VK_API_VERSION_1_2
))
5446 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan12Properties
));
5447 if ((gpu
.api_version
>= VK_API_VERSION_1_3
))
5448 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan13Properties
));
5449 if ((gpu
.api_version
>= VK_API_VERSION_1_4
))
5450 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan14Properties
));
5452 if (!chain_members
.empty()) {
5453 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
5454 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
5456 start_of_chain
= chain_members
[0];
5460 void setup_phys_device_props2_chain(VkPhysicalDeviceProperties2
& start
, std::unique_ptr
<phys_device_props2_chain
>& chain
, AppInstance
&inst
,AppGpu
&gpu
,bool show_promoted_structs
){
5461 chain
= std::unique_ptr
<phys_device_props2_chain
>(new phys_device_props2_chain());
5462 chain
->initialize_chain(inst
,gpu
,show_promoted_structs
);
5463 start
.pNext
= chain
->start_of_chain
;
5466 void chain_iterator_phys_device_props2(Printer
&p
, AppInstance
&inst
, AppGpu
&gpu
, bool show_promoted_structs
, const void * place
) {
5468 const VkBaseOutStructure
*structure
= (const VkBaseOutStructure
*)place
;
5470 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
) {
5471 const VkPhysicalDeviceAccelerationStructurePropertiesKHR
* props
= (const VkPhysicalDeviceAccelerationStructurePropertiesKHR
*)structure
;
5472 DumpVkPhysicalDeviceAccelerationStructurePropertiesKHR(p
, "VkPhysicalDeviceAccelerationStructurePropertiesKHR", *props
);
5475 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
) {
5476 const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
* props
= (const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
*)structure
;
5477 DumpVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(p
, "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT", *props
);
5480 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
) {
5481 const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
* props
= (const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
*)structure
;
5482 DumpVkPhysicalDeviceComputeShaderDerivativesPropertiesKHR(p
, "VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR", *props
);
5485 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
) {
5486 const VkPhysicalDeviceConservativeRasterizationPropertiesEXT
* props
= (const VkPhysicalDeviceConservativeRasterizationPropertiesEXT
*)structure
;
5487 DumpVkPhysicalDeviceConservativeRasterizationPropertiesEXT(p
, "VkPhysicalDeviceConservativeRasterizationPropertiesEXT", *props
);
5490 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
) {
5491 const VkPhysicalDeviceCooperativeMatrixPropertiesKHR
* props
= (const VkPhysicalDeviceCooperativeMatrixPropertiesKHR
*)structure
;
5492 DumpVkPhysicalDeviceCooperativeMatrixPropertiesKHR(p
, "VkPhysicalDeviceCooperativeMatrixPropertiesKHR", *props
);
5495 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
) {
5496 const VkPhysicalDeviceCustomBorderColorPropertiesEXT
* props
= (const VkPhysicalDeviceCustomBorderColorPropertiesEXT
*)structure
;
5497 DumpVkPhysicalDeviceCustomBorderColorPropertiesEXT(p
, "VkPhysicalDeviceCustomBorderColorPropertiesEXT", *props
);
5500 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
) {
5501 const VkPhysicalDeviceDepthStencilResolveProperties
* props
= (const VkPhysicalDeviceDepthStencilResolveProperties
*)structure
;
5502 DumpVkPhysicalDeviceDepthStencilResolveProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceDepthStencilResolveProperties":"VkPhysicalDeviceDepthStencilResolvePropertiesKHR", *props
);
5505 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
) {
5506 const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
* props
= (const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
*)structure
;
5507 DumpVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(p
, "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT", *props
);
5510 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
) {
5511 const VkPhysicalDeviceDescriptorBufferPropertiesEXT
* props
= (const VkPhysicalDeviceDescriptorBufferPropertiesEXT
*)structure
;
5512 DumpVkPhysicalDeviceDescriptorBufferPropertiesEXT(p
, "VkPhysicalDeviceDescriptorBufferPropertiesEXT", *props
);
5515 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
) {
5516 const VkPhysicalDeviceDescriptorIndexingProperties
* props
= (const VkPhysicalDeviceDescriptorIndexingProperties
*)structure
;
5517 DumpVkPhysicalDeviceDescriptorIndexingProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceDescriptorIndexingProperties":"VkPhysicalDeviceDescriptorIndexingPropertiesEXT", *props
);
5520 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT
) {
5521 const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
* props
= (const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
*)structure
;
5522 DumpVkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT(p
, "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT", *props
);
5525 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
) {
5526 const VkPhysicalDeviceDiscardRectanglePropertiesEXT
* props
= (const VkPhysicalDeviceDiscardRectanglePropertiesEXT
*)structure
;
5527 DumpVkPhysicalDeviceDiscardRectanglePropertiesEXT(p
, "VkPhysicalDeviceDiscardRectanglePropertiesEXT", *props
);
5530 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
) {
5531 const VkPhysicalDeviceDriverProperties
* props
= (const VkPhysicalDeviceDriverProperties
*)structure
;
5532 DumpVkPhysicalDeviceDriverProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceDriverProperties":"VkPhysicalDeviceDriverPropertiesKHR", *props
);
5535 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
) {
5536 const VkPhysicalDeviceDrmPropertiesEXT
* props
= (const VkPhysicalDeviceDrmPropertiesEXT
*)structure
;
5537 DumpVkPhysicalDeviceDrmPropertiesEXT(p
, "VkPhysicalDeviceDrmPropertiesEXT", *props
);
5540 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
) {
5541 const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT
* props
= (const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT
*)structure
;
5542 DumpVkPhysicalDeviceExtendedDynamicState3PropertiesEXT(p
, "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT", *props
);
5545 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
) {
5546 const VkPhysicalDeviceExternalMemoryHostPropertiesEXT
* props
= (const VkPhysicalDeviceExternalMemoryHostPropertiesEXT
*)structure
;
5547 DumpVkPhysicalDeviceExternalMemoryHostPropertiesEXT(p
, "VkPhysicalDeviceExternalMemoryHostPropertiesEXT", *props
);
5550 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
) {
5551 const VkPhysicalDeviceFloatControlsProperties
* props
= (const VkPhysicalDeviceFloatControlsProperties
*)structure
;
5552 DumpVkPhysicalDeviceFloatControlsProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceFloatControlsProperties":"VkPhysicalDeviceFloatControlsPropertiesKHR", *props
);
5555 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
) {
5556 const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
* props
= (const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
*)structure
;
5557 DumpVkPhysicalDeviceFragmentDensityMap2PropertiesEXT(p
, "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT", *props
);
5560 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
) {
5561 const VkPhysicalDeviceFragmentDensityMapPropertiesEXT
* props
= (const VkPhysicalDeviceFragmentDensityMapPropertiesEXT
*)structure
;
5562 DumpVkPhysicalDeviceFragmentDensityMapPropertiesEXT(p
, "VkPhysicalDeviceFragmentDensityMapPropertiesEXT", *props
);
5565 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
) {
5566 const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
* props
= (const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
*)structure
;
5567 DumpVkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(p
, "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR", *props
);
5570 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
) {
5571 const VkPhysicalDeviceFragmentShadingRatePropertiesKHR
* props
= (const VkPhysicalDeviceFragmentShadingRatePropertiesKHR
*)structure
;
5572 DumpVkPhysicalDeviceFragmentShadingRatePropertiesKHR(p
, "VkPhysicalDeviceFragmentShadingRatePropertiesKHR", *props
);
5575 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
) {
5576 const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
* props
= (const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
*)structure
;
5577 DumpVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(p
, "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT", *props
);
5580 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES
) {
5581 const VkPhysicalDeviceHostImageCopyProperties
* props
= (const VkPhysicalDeviceHostImageCopyProperties
*)structure
;
5582 DumpVkPhysicalDeviceHostImageCopyProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceHostImageCopyProperties":"VkPhysicalDeviceHostImageCopyPropertiesEXT", *props
);
5585 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
) {
5586 const VkPhysicalDeviceIDProperties
* props
= (const VkPhysicalDeviceIDProperties
*)structure
;
5587 DumpVkPhysicalDeviceIDProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceIDProperties":"VkPhysicalDeviceIDPropertiesKHR", *props
);
5590 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
) {
5591 const VkPhysicalDeviceInlineUniformBlockProperties
* props
= (const VkPhysicalDeviceInlineUniformBlockProperties
*)structure
;
5592 DumpVkPhysicalDeviceInlineUniformBlockProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceInlineUniformBlockProperties":"VkPhysicalDeviceInlineUniformBlockPropertiesEXT", *props
);
5595 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
) {
5596 const VkPhysicalDeviceLayeredApiPropertiesListKHR
* props
= (const VkPhysicalDeviceLayeredApiPropertiesListKHR
*)structure
;
5597 DumpVkPhysicalDeviceLayeredApiPropertiesListKHR(p
, "VkPhysicalDeviceLayeredApiPropertiesListKHR", *props
);
5600 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
) {
5601 const VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT
* props
= (const VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT
*)structure
;
5602 DumpVkPhysicalDeviceLegacyVertexAttributesPropertiesEXT(p
, "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT", *props
);
5605 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES
) {
5606 const VkPhysicalDeviceLineRasterizationProperties
* props
= (const VkPhysicalDeviceLineRasterizationProperties
*)structure
;
5607 DumpVkPhysicalDeviceLineRasterizationProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceLineRasterizationProperties":"VkPhysicalDeviceLineRasterizationPropertiesKHR", *props
);
5610 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
) {
5611 const VkPhysicalDeviceMaintenance3Properties
* props
= (const VkPhysicalDeviceMaintenance3Properties
*)structure
;
5612 DumpVkPhysicalDeviceMaintenance3Properties(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceMaintenance3Properties":"VkPhysicalDeviceMaintenance3PropertiesKHR", *props
);
5615 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
) {
5616 const VkPhysicalDeviceMaintenance4Properties
* props
= (const VkPhysicalDeviceMaintenance4Properties
*)structure
;
5617 DumpVkPhysicalDeviceMaintenance4Properties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceMaintenance4Properties":"VkPhysicalDeviceMaintenance4PropertiesKHR", *props
);
5620 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES
) {
5621 const VkPhysicalDeviceMaintenance5Properties
* props
= (const VkPhysicalDeviceMaintenance5Properties
*)structure
;
5622 DumpVkPhysicalDeviceMaintenance5Properties(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceMaintenance5Properties":"VkPhysicalDeviceMaintenance5PropertiesKHR", *props
);
5625 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES
) {
5626 const VkPhysicalDeviceMaintenance6Properties
* props
= (const VkPhysicalDeviceMaintenance6Properties
*)structure
;
5627 DumpVkPhysicalDeviceMaintenance6Properties(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceMaintenance6Properties":"VkPhysicalDeviceMaintenance6PropertiesKHR", *props
);
5630 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
) {
5631 const VkPhysicalDeviceMaintenance7PropertiesKHR
* props
= (const VkPhysicalDeviceMaintenance7PropertiesKHR
*)structure
;
5632 DumpVkPhysicalDeviceMaintenance7PropertiesKHR(p
, "VkPhysicalDeviceMaintenance7PropertiesKHR", *props
);
5635 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT
) {
5636 const VkPhysicalDeviceMapMemoryPlacedPropertiesEXT
* props
= (const VkPhysicalDeviceMapMemoryPlacedPropertiesEXT
*)structure
;
5637 DumpVkPhysicalDeviceMapMemoryPlacedPropertiesEXT(p
, "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT", *props
);
5640 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
) {
5641 const VkPhysicalDeviceMeshShaderPropertiesEXT
* props
= (const VkPhysicalDeviceMeshShaderPropertiesEXT
*)structure
;
5642 DumpVkPhysicalDeviceMeshShaderPropertiesEXT(p
, "VkPhysicalDeviceMeshShaderPropertiesEXT", *props
);
5645 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
) {
5646 const VkPhysicalDeviceMultiDrawPropertiesEXT
* props
= (const VkPhysicalDeviceMultiDrawPropertiesEXT
*)structure
;
5647 DumpVkPhysicalDeviceMultiDrawPropertiesEXT(p
, "VkPhysicalDeviceMultiDrawPropertiesEXT", *props
);
5650 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
) {
5651 const VkPhysicalDeviceMultiviewProperties
* props
= (const VkPhysicalDeviceMultiviewProperties
*)structure
;
5652 DumpVkPhysicalDeviceMultiviewProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceMultiviewProperties":"VkPhysicalDeviceMultiviewPropertiesKHR", *props
);
5655 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
) {
5656 const VkPhysicalDeviceNestedCommandBufferPropertiesEXT
* props
= (const VkPhysicalDeviceNestedCommandBufferPropertiesEXT
*)structure
;
5657 DumpVkPhysicalDeviceNestedCommandBufferPropertiesEXT(p
, "VkPhysicalDeviceNestedCommandBufferPropertiesEXT", *props
);
5660 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
) {
5661 const VkPhysicalDeviceOpacityMicromapPropertiesEXT
* props
= (const VkPhysicalDeviceOpacityMicromapPropertiesEXT
*)structure
;
5662 DumpVkPhysicalDeviceOpacityMicromapPropertiesEXT(p
, "VkPhysicalDeviceOpacityMicromapPropertiesEXT", *props
);
5665 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
) {
5666 const VkPhysicalDevicePCIBusInfoPropertiesEXT
* props
= (const VkPhysicalDevicePCIBusInfoPropertiesEXT
*)structure
;
5667 DumpVkPhysicalDevicePCIBusInfoPropertiesEXT(p
, "VkPhysicalDevicePCIBusInfoPropertiesEXT", *props
);
5670 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
) {
5671 const VkPhysicalDevicePerformanceQueryPropertiesKHR
* props
= (const VkPhysicalDevicePerformanceQueryPropertiesKHR
*)structure
;
5672 DumpVkPhysicalDevicePerformanceQueryPropertiesKHR(p
, "VkPhysicalDevicePerformanceQueryPropertiesKHR", *props
);
5675 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
) {
5676 const VkPhysicalDevicePipelineBinaryPropertiesKHR
* props
= (const VkPhysicalDevicePipelineBinaryPropertiesKHR
*)structure
;
5677 DumpVkPhysicalDevicePipelineBinaryPropertiesKHR(p
, "VkPhysicalDevicePipelineBinaryPropertiesKHR", *props
);
5680 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES
) {
5681 const VkPhysicalDevicePipelineRobustnessProperties
* props
= (const VkPhysicalDevicePipelineRobustnessProperties
*)structure
;
5682 DumpVkPhysicalDevicePipelineRobustnessProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDevicePipelineRobustnessProperties":"VkPhysicalDevicePipelineRobustnessPropertiesEXT", *props
);
5685 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
) {
5686 const VkPhysicalDevicePointClippingProperties
* props
= (const VkPhysicalDevicePointClippingProperties
*)structure
;
5687 DumpVkPhysicalDevicePointClippingProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDevicePointClippingProperties":"VkPhysicalDevicePointClippingPropertiesKHR", *props
);
5690 #ifdef VK_ENABLE_BETA_EXTENSIONS
5691 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
&& p
.Type() != OutputType::json
) {
5692 const VkPhysicalDevicePortabilitySubsetPropertiesKHR
* props
= (const VkPhysicalDevicePortabilitySubsetPropertiesKHR
*)structure
;
5693 DumpVkPhysicalDevicePortabilitySubsetPropertiesKHR(p
, "VkPhysicalDevicePortabilitySubsetPropertiesKHR", *props
);
5696 #endif // VK_ENABLE_BETA_EXTENSIONS
5697 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
) {
5698 const VkPhysicalDeviceProtectedMemoryProperties
* props
= (const VkPhysicalDeviceProtectedMemoryProperties
*)structure
;
5699 DumpVkPhysicalDeviceProtectedMemoryProperties(p
, "VkPhysicalDeviceProtectedMemoryProperties", *props
);
5702 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
) {
5703 const VkPhysicalDeviceProvokingVertexPropertiesEXT
* props
= (const VkPhysicalDeviceProvokingVertexPropertiesEXT
*)structure
;
5704 DumpVkPhysicalDeviceProvokingVertexPropertiesEXT(p
, "VkPhysicalDeviceProvokingVertexPropertiesEXT", *props
);
5707 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES
) {
5708 const VkPhysicalDevicePushDescriptorProperties
* props
= (const VkPhysicalDevicePushDescriptorProperties
*)structure
;
5709 DumpVkPhysicalDevicePushDescriptorProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDevicePushDescriptorProperties":"VkPhysicalDevicePushDescriptorPropertiesKHR", *props
);
5712 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
) {
5713 const VkPhysicalDeviceRayTracingPipelinePropertiesKHR
* props
= (const VkPhysicalDeviceRayTracingPipelinePropertiesKHR
*)structure
;
5714 DumpVkPhysicalDeviceRayTracingPipelinePropertiesKHR(p
, "VkPhysicalDeviceRayTracingPipelinePropertiesKHR", *props
);
5717 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
) {
5718 const VkPhysicalDeviceRobustness2PropertiesEXT
* props
= (const VkPhysicalDeviceRobustness2PropertiesEXT
*)structure
;
5719 DumpVkPhysicalDeviceRobustness2PropertiesEXT(p
, "VkPhysicalDeviceRobustness2PropertiesEXT", *props
);
5722 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
) {
5723 const VkPhysicalDeviceSampleLocationsPropertiesEXT
* props
= (const VkPhysicalDeviceSampleLocationsPropertiesEXT
*)structure
;
5724 DumpVkPhysicalDeviceSampleLocationsPropertiesEXT(p
, "VkPhysicalDeviceSampleLocationsPropertiesEXT", *props
);
5727 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
) {
5728 const VkPhysicalDeviceSamplerFilterMinmaxProperties
* props
= (const VkPhysicalDeviceSamplerFilterMinmaxProperties
*)structure
;
5729 DumpVkPhysicalDeviceSamplerFilterMinmaxProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceSamplerFilterMinmaxProperties":"VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT", *props
);
5732 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
) {
5733 const VkPhysicalDeviceShaderIntegerDotProductProperties
* props
= (const VkPhysicalDeviceShaderIntegerDotProductProperties
*)structure
;
5734 DumpVkPhysicalDeviceShaderIntegerDotProductProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceShaderIntegerDotProductProperties":"VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR", *props
);
5737 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
) {
5738 const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
* props
= (const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
*)structure
;
5739 DumpVkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(p
, "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT", *props
);
5742 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
) {
5743 const VkPhysicalDeviceShaderObjectPropertiesEXT
* props
= (const VkPhysicalDeviceShaderObjectPropertiesEXT
*)structure
;
5744 DumpVkPhysicalDeviceShaderObjectPropertiesEXT(p
, "VkPhysicalDeviceShaderObjectPropertiesEXT", *props
);
5747 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
) {
5748 const VkPhysicalDeviceShaderTileImagePropertiesEXT
* props
= (const VkPhysicalDeviceShaderTileImagePropertiesEXT
*)structure
;
5749 DumpVkPhysicalDeviceShaderTileImagePropertiesEXT(p
, "VkPhysicalDeviceShaderTileImagePropertiesEXT", *props
);
5752 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
) {
5753 const VkPhysicalDeviceSubgroupProperties
* props
= (const VkPhysicalDeviceSubgroupProperties
*)structure
;
5754 DumpVkPhysicalDeviceSubgroupProperties(p
, "VkPhysicalDeviceSubgroupProperties", *props
);
5757 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
) {
5758 const VkPhysicalDeviceSubgroupSizeControlProperties
* props
= (const VkPhysicalDeviceSubgroupSizeControlProperties
*)structure
;
5759 DumpVkPhysicalDeviceSubgroupSizeControlProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceSubgroupSizeControlProperties":"VkPhysicalDeviceSubgroupSizeControlPropertiesEXT", *props
);
5762 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
) {
5763 const VkPhysicalDeviceTexelBufferAlignmentProperties
* props
= (const VkPhysicalDeviceTexelBufferAlignmentProperties
*)structure
;
5764 DumpVkPhysicalDeviceTexelBufferAlignmentProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceTexelBufferAlignmentProperties":"VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT", *props
);
5767 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
) {
5768 const VkPhysicalDeviceTimelineSemaphoreProperties
* props
= (const VkPhysicalDeviceTimelineSemaphoreProperties
*)structure
;
5769 DumpVkPhysicalDeviceTimelineSemaphoreProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceTimelineSemaphoreProperties":"VkPhysicalDeviceTimelineSemaphorePropertiesKHR", *props
);
5772 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
) {
5773 const VkPhysicalDeviceTransformFeedbackPropertiesEXT
* props
= (const VkPhysicalDeviceTransformFeedbackPropertiesEXT
*)structure
;
5774 DumpVkPhysicalDeviceTransformFeedbackPropertiesEXT(p
, "VkPhysicalDeviceTransformFeedbackPropertiesEXT", *props
);
5777 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES
) {
5778 const VkPhysicalDeviceVertexAttributeDivisorProperties
* props
= (const VkPhysicalDeviceVertexAttributeDivisorProperties
*)structure
;
5779 DumpVkPhysicalDeviceVertexAttributeDivisorProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceVertexAttributeDivisorProperties":"VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR", *props
);
5782 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
) {
5783 const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
* props
= (const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
*)structure
;
5784 DumpVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(p
, "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT", *props
);
5787 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
) {
5788 const VkPhysicalDeviceVulkan11Properties
* props
= (const VkPhysicalDeviceVulkan11Properties
*)structure
;
5789 DumpVkPhysicalDeviceVulkan11Properties(p
, "VkPhysicalDeviceVulkan11Properties", *props
);
5792 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
) {
5793 const VkPhysicalDeviceVulkan12Properties
* props
= (const VkPhysicalDeviceVulkan12Properties
*)structure
;
5794 DumpVkPhysicalDeviceVulkan12Properties(p
, "VkPhysicalDeviceVulkan12Properties", *props
);
5797 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
) {
5798 const VkPhysicalDeviceVulkan13Properties
* props
= (const VkPhysicalDeviceVulkan13Properties
*)structure
;
5799 DumpVkPhysicalDeviceVulkan13Properties(p
, "VkPhysicalDeviceVulkan13Properties", *props
);
5802 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES
) {
5803 const VkPhysicalDeviceVulkan14Properties
* props
= (const VkPhysicalDeviceVulkan14Properties
*)structure
;
5804 DumpVkPhysicalDeviceVulkan14Properties(p
, "VkPhysicalDeviceVulkan14Properties", *props
);
5807 place
= structure
->pNext
;
5811 bool prepare_phys_device_props2_twocall_chain_vectors(std::unique_ptr
<phys_device_props2_chain
>& chain
) {
5813 chain
->VkPhysicalDeviceHostImageCopyProperties_pCopySrcLayouts
.resize(chain
->PhysicalDeviceHostImageCopyProperties
.copySrcLayoutCount
);
5814 chain
->PhysicalDeviceHostImageCopyProperties
.pCopySrcLayouts
= chain
->VkPhysicalDeviceHostImageCopyProperties_pCopySrcLayouts
.data();
5815 chain
->VkPhysicalDeviceHostImageCopyProperties_pCopyDstLayouts
.resize(chain
->PhysicalDeviceHostImageCopyProperties
.copyDstLayoutCount
);
5816 chain
->PhysicalDeviceHostImageCopyProperties
.pCopyDstLayouts
= chain
->VkPhysicalDeviceHostImageCopyProperties_pCopyDstLayouts
.data();
5817 chain
->VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis
.resize(chain
->PhysicalDeviceLayeredApiPropertiesListKHR
.layeredApiCount
);
5818 chain
->PhysicalDeviceLayeredApiPropertiesListKHR
.pLayeredApis
= chain
->VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis
.data();
5819 chain
->VkPhysicalDeviceVulkan14Properties_pCopySrcLayouts
.resize(chain
->PhysicalDeviceVulkan14Properties
.copySrcLayoutCount
);
5820 chain
->PhysicalDeviceVulkan14Properties
.pCopySrcLayouts
= chain
->VkPhysicalDeviceVulkan14Properties_pCopySrcLayouts
.data();
5821 chain
->VkPhysicalDeviceVulkan14Properties_pCopyDstLayouts
.resize(chain
->PhysicalDeviceVulkan14Properties
.copyDstLayoutCount
);
5822 chain
->PhysicalDeviceVulkan14Properties
.pCopyDstLayouts
= chain
->VkPhysicalDeviceVulkan14Properties_pCopyDstLayouts
.data();
5825 struct phys_device_mem_props2_chain
{
5826 phys_device_mem_props2_chain() = default;
5827 phys_device_mem_props2_chain(const phys_device_mem_props2_chain
&) = delete;
5828 phys_device_mem_props2_chain
& operator=(const phys_device_mem_props2_chain
&) = delete;
5829 phys_device_mem_props2_chain(phys_device_mem_props2_chain
&&) = delete;
5830 phys_device_mem_props2_chain
& operator=(phys_device_mem_props2_chain
&&) = delete;
5831 void* start_of_chain
= nullptr;
5832 VkPhysicalDeviceMemoryBudgetPropertiesEXT PhysicalDeviceMemoryBudgetPropertiesEXT
{};
5833 void initialize_chain(AppGpu
&gpu
) noexcept
{
5834 PhysicalDeviceMemoryBudgetPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
;
5835 std::vector
<VkBaseOutStructure
*> chain_members
{};
5836 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME
))
5837 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMemoryBudgetPropertiesEXT
));
5839 if (!chain_members
.empty()) {
5840 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
5841 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
5843 start_of_chain
= chain_members
[0];
5847 void setup_phys_device_mem_props2_chain(VkPhysicalDeviceMemoryProperties2
& start
, std::unique_ptr
<phys_device_mem_props2_chain
>& chain
, AppGpu
&gpu
){
5848 chain
= std::unique_ptr
<phys_device_mem_props2_chain
>(new phys_device_mem_props2_chain());
5849 chain
->initialize_chain(gpu
);
5850 start
.pNext
= chain
->start_of_chain
;
5853 bool prepare_phys_device_mem_props2_twocall_chain_vectors(std::unique_ptr
<phys_device_mem_props2_chain
>& chain
) {
5857 struct phys_device_features2_chain
{
5858 phys_device_features2_chain() = default;
5859 phys_device_features2_chain(const phys_device_features2_chain
&) = delete;
5860 phys_device_features2_chain
& operator=(const phys_device_features2_chain
&) = delete;
5861 phys_device_features2_chain(phys_device_features2_chain
&&) = delete;
5862 phys_device_features2_chain
& operator=(phys_device_features2_chain
&&) = delete;
5863 void* start_of_chain
= nullptr;
5864 VkPhysicalDevice16BitStorageFeatures PhysicalDevice16BitStorageFeatures
{};
5865 VkPhysicalDevice4444FormatsFeaturesEXT PhysicalDevice4444FormatsFeaturesEXT
{};
5866 VkPhysicalDevice8BitStorageFeatures PhysicalDevice8BitStorageFeatures
{};
5867 VkPhysicalDeviceASTCDecodeFeaturesEXT PhysicalDeviceASTCDecodeFeaturesEXT
{};
5868 VkPhysicalDeviceAccelerationStructureFeaturesKHR PhysicalDeviceAccelerationStructureFeaturesKHR
{};
5869 VkPhysicalDeviceAddressBindingReportFeaturesEXT PhysicalDeviceAddressBindingReportFeaturesEXT
{};
5870 VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
{};
5871 VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
{};
5872 VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT PhysicalDeviceBlendOperationAdvancedFeaturesEXT
{};
5873 VkPhysicalDeviceBorderColorSwizzleFeaturesEXT PhysicalDeviceBorderColorSwizzleFeaturesEXT
{};
5874 VkPhysicalDeviceBufferDeviceAddressFeatures PhysicalDeviceBufferDeviceAddressFeatures
{};
5875 VkPhysicalDeviceBufferDeviceAddressFeaturesEXT PhysicalDeviceBufferDeviceAddressFeaturesEXT
{};
5876 VkPhysicalDeviceColorWriteEnableFeaturesEXT PhysicalDeviceColorWriteEnableFeaturesEXT
{};
5877 VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR PhysicalDeviceComputeShaderDerivativesFeaturesKHR
{};
5878 VkPhysicalDeviceConditionalRenderingFeaturesEXT PhysicalDeviceConditionalRenderingFeaturesEXT
{};
5879 VkPhysicalDeviceCooperativeMatrixFeaturesKHR PhysicalDeviceCooperativeMatrixFeaturesKHR
{};
5880 VkPhysicalDeviceCustomBorderColorFeaturesEXT PhysicalDeviceCustomBorderColorFeaturesEXT
{};
5881 VkPhysicalDeviceDepthBiasControlFeaturesEXT PhysicalDeviceDepthBiasControlFeaturesEXT
{};
5882 VkPhysicalDeviceDepthClampControlFeaturesEXT PhysicalDeviceDepthClampControlFeaturesEXT
{};
5883 VkPhysicalDeviceDepthClampZeroOneFeaturesKHR PhysicalDeviceDepthClampZeroOneFeaturesKHR
{};
5884 VkPhysicalDeviceDepthClipControlFeaturesEXT PhysicalDeviceDepthClipControlFeaturesEXT
{};
5885 VkPhysicalDeviceDepthClipEnableFeaturesEXT PhysicalDeviceDepthClipEnableFeaturesEXT
{};
5886 VkPhysicalDeviceDescriptorBufferFeaturesEXT PhysicalDeviceDescriptorBufferFeaturesEXT
{};
5887 VkPhysicalDeviceDescriptorIndexingFeatures PhysicalDeviceDescriptorIndexingFeatures
{};
5888 VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
{};
5889 VkPhysicalDeviceDeviceMemoryReportFeaturesEXT PhysicalDeviceDeviceMemoryReportFeaturesEXT
{};
5890 VkPhysicalDeviceDynamicRenderingFeatures PhysicalDeviceDynamicRenderingFeatures
{};
5891 VkPhysicalDeviceDynamicRenderingLocalReadFeatures PhysicalDeviceDynamicRenderingLocalReadFeatures
{};
5892 VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
{};
5893 VkPhysicalDeviceExtendedDynamicState2FeaturesEXT PhysicalDeviceExtendedDynamicState2FeaturesEXT
{};
5894 VkPhysicalDeviceExtendedDynamicState3FeaturesEXT PhysicalDeviceExtendedDynamicState3FeaturesEXT
{};
5895 VkPhysicalDeviceExtendedDynamicStateFeaturesEXT PhysicalDeviceExtendedDynamicStateFeaturesEXT
{};
5896 VkPhysicalDeviceFaultFeaturesEXT PhysicalDeviceFaultFeaturesEXT
{};
5897 VkPhysicalDeviceFragmentDensityMap2FeaturesEXT PhysicalDeviceFragmentDensityMap2FeaturesEXT
{};
5898 VkPhysicalDeviceFragmentDensityMapFeaturesEXT PhysicalDeviceFragmentDensityMapFeaturesEXT
{};
5899 VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
{};
5900 VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT PhysicalDeviceFragmentShaderInterlockFeaturesEXT
{};
5901 VkPhysicalDeviceFragmentShadingRateFeaturesKHR PhysicalDeviceFragmentShadingRateFeaturesKHR
{};
5902 VkPhysicalDeviceFrameBoundaryFeaturesEXT PhysicalDeviceFrameBoundaryFeaturesEXT
{};
5903 VkPhysicalDeviceGlobalPriorityQueryFeatures PhysicalDeviceGlobalPriorityQueryFeatures
{};
5904 VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
{};
5905 VkPhysicalDeviceHostImageCopyFeatures PhysicalDeviceHostImageCopyFeatures
{};
5906 VkPhysicalDeviceHostQueryResetFeatures PhysicalDeviceHostQueryResetFeatures
{};
5907 VkPhysicalDeviceImage2DViewOf3DFeaturesEXT PhysicalDeviceImage2DViewOf3DFeaturesEXT
{};
5908 VkPhysicalDeviceImageCompressionControlFeaturesEXT PhysicalDeviceImageCompressionControlFeaturesEXT
{};
5909 VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
{};
5910 VkPhysicalDeviceImageRobustnessFeatures PhysicalDeviceImageRobustnessFeatures
{};
5911 VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
{};
5912 VkPhysicalDeviceImageViewMinLodFeaturesEXT PhysicalDeviceImageViewMinLodFeaturesEXT
{};
5913 VkPhysicalDeviceImagelessFramebufferFeatures PhysicalDeviceImagelessFramebufferFeatures
{};
5914 VkPhysicalDeviceIndexTypeUint8Features PhysicalDeviceIndexTypeUint8Features
{};
5915 VkPhysicalDeviceInlineUniformBlockFeatures PhysicalDeviceInlineUniformBlockFeatures
{};
5916 VkPhysicalDeviceLegacyDitheringFeaturesEXT PhysicalDeviceLegacyDitheringFeaturesEXT
{};
5917 VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT PhysicalDeviceLegacyVertexAttributesFeaturesEXT
{};
5918 VkPhysicalDeviceLineRasterizationFeatures PhysicalDeviceLineRasterizationFeatures
{};
5919 VkPhysicalDeviceMaintenance4Features PhysicalDeviceMaintenance4Features
{};
5920 VkPhysicalDeviceMaintenance5Features PhysicalDeviceMaintenance5Features
{};
5921 VkPhysicalDeviceMaintenance6Features PhysicalDeviceMaintenance6Features
{};
5922 VkPhysicalDeviceMaintenance7FeaturesKHR PhysicalDeviceMaintenance7FeaturesKHR
{};
5923 VkPhysicalDeviceMaintenance8FeaturesKHR PhysicalDeviceMaintenance8FeaturesKHR
{};
5924 VkPhysicalDeviceMapMemoryPlacedFeaturesEXT PhysicalDeviceMapMemoryPlacedFeaturesEXT
{};
5925 VkPhysicalDeviceMemoryPriorityFeaturesEXT PhysicalDeviceMemoryPriorityFeaturesEXT
{};
5926 VkPhysicalDeviceMeshShaderFeaturesEXT PhysicalDeviceMeshShaderFeaturesEXT
{};
5927 VkPhysicalDeviceMultiDrawFeaturesEXT PhysicalDeviceMultiDrawFeaturesEXT
{};
5928 VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
{};
5929 VkPhysicalDeviceMultiviewFeatures PhysicalDeviceMultiviewFeatures
{};
5930 VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT PhysicalDeviceMutableDescriptorTypeFeaturesEXT
{};
5931 VkPhysicalDeviceNestedCommandBufferFeaturesEXT PhysicalDeviceNestedCommandBufferFeaturesEXT
{};
5932 VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
{};
5933 VkPhysicalDeviceOpacityMicromapFeaturesEXT PhysicalDeviceOpacityMicromapFeaturesEXT
{};
5934 VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
{};
5935 VkPhysicalDevicePerformanceQueryFeaturesKHR PhysicalDevicePerformanceQueryFeaturesKHR
{};
5936 VkPhysicalDevicePipelineBinaryFeaturesKHR PhysicalDevicePipelineBinaryFeaturesKHR
{};
5937 VkPhysicalDevicePipelineCreationCacheControlFeatures PhysicalDevicePipelineCreationCacheControlFeatures
{};
5938 VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
{};
5939 VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
{};
5940 VkPhysicalDevicePipelinePropertiesFeaturesEXT PhysicalDevicePipelinePropertiesFeaturesEXT
{};
5941 VkPhysicalDevicePipelineProtectedAccessFeatures PhysicalDevicePipelineProtectedAccessFeatures
{};
5942 VkPhysicalDevicePipelineRobustnessFeatures PhysicalDevicePipelineRobustnessFeatures
{};
5943 #ifdef VK_ENABLE_BETA_EXTENSIONS
5944 VkPhysicalDevicePortabilitySubsetFeaturesKHR PhysicalDevicePortabilitySubsetFeaturesKHR
{};
5945 #endif // VK_ENABLE_BETA_EXTENSIONS
5946 VkPhysicalDevicePresentIdFeaturesKHR PhysicalDevicePresentIdFeaturesKHR
{};
5947 VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
{};
5948 VkPhysicalDevicePresentWaitFeaturesKHR PhysicalDevicePresentWaitFeaturesKHR
{};
5949 VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
{};
5950 VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
{};
5951 VkPhysicalDevicePrivateDataFeatures PhysicalDevicePrivateDataFeatures
{};
5952 VkPhysicalDeviceProtectedMemoryFeatures PhysicalDeviceProtectedMemoryFeatures
{};
5953 VkPhysicalDeviceProvokingVertexFeaturesEXT PhysicalDeviceProvokingVertexFeaturesEXT
{};
5954 VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT PhysicalDeviceRGBA10X6FormatsFeaturesEXT
{};
5955 VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
{};
5956 VkPhysicalDeviceRayQueryFeaturesKHR PhysicalDeviceRayQueryFeaturesKHR
{};
5957 VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR PhysicalDeviceRayTracingMaintenance1FeaturesKHR
{};
5958 VkPhysicalDeviceRayTracingPipelineFeaturesKHR PhysicalDeviceRayTracingPipelineFeaturesKHR
{};
5959 VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR PhysicalDeviceRayTracingPositionFetchFeaturesKHR
{};
5960 VkPhysicalDeviceRobustness2FeaturesEXT PhysicalDeviceRobustness2FeaturesEXT
{};
5961 VkPhysicalDeviceSamplerYcbcrConversionFeatures PhysicalDeviceSamplerYcbcrConversionFeatures
{};
5962 VkPhysicalDeviceScalarBlockLayoutFeatures PhysicalDeviceScalarBlockLayoutFeatures
{};
5963 VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures PhysicalDeviceSeparateDepthStencilLayoutsFeatures
{};
5964 VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT PhysicalDeviceShaderAtomicFloat2FeaturesEXT
{};
5965 VkPhysicalDeviceShaderAtomicFloatFeaturesEXT PhysicalDeviceShaderAtomicFloatFeaturesEXT
{};
5966 VkPhysicalDeviceShaderAtomicInt64Features PhysicalDeviceShaderAtomicInt64Features
{};
5967 VkPhysicalDeviceShaderClockFeaturesKHR PhysicalDeviceShaderClockFeaturesKHR
{};
5968 VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures PhysicalDeviceShaderDemoteToHelperInvocationFeatures
{};
5969 VkPhysicalDeviceShaderDrawParametersFeatures PhysicalDeviceShaderDrawParametersFeatures
{};
5970 VkPhysicalDeviceShaderExpectAssumeFeatures PhysicalDeviceShaderExpectAssumeFeatures
{};
5971 VkPhysicalDeviceShaderFloat16Int8Features PhysicalDeviceShaderFloat16Int8Features
{};
5972 VkPhysicalDeviceShaderFloatControls2Features PhysicalDeviceShaderFloatControls2Features
{};
5973 VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
{};
5974 VkPhysicalDeviceShaderIntegerDotProductFeatures PhysicalDeviceShaderIntegerDotProductFeatures
{};
5975 char VkPhysicalDeviceShaderIntegerDotProductFeatures_padding
[64];
5976 VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
{};
5977 VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT PhysicalDeviceShaderModuleIdentifierFeaturesEXT
{};
5978 VkPhysicalDeviceShaderObjectFeaturesEXT PhysicalDeviceShaderObjectFeaturesEXT
{};
5979 VkPhysicalDeviceShaderQuadControlFeaturesKHR PhysicalDeviceShaderQuadControlFeaturesKHR
{};
5980 VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
{};
5981 VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
{};
5982 VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures PhysicalDeviceShaderSubgroupExtendedTypesFeatures
{};
5983 VkPhysicalDeviceShaderSubgroupRotateFeatures PhysicalDeviceShaderSubgroupRotateFeatures
{};
5984 VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
{};
5985 VkPhysicalDeviceShaderTerminateInvocationFeatures PhysicalDeviceShaderTerminateInvocationFeatures
{};
5986 VkPhysicalDeviceShaderTileImageFeaturesEXT PhysicalDeviceShaderTileImageFeaturesEXT
{};
5987 VkPhysicalDeviceSubgroupSizeControlFeatures PhysicalDeviceSubgroupSizeControlFeatures
{};
5988 VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
{};
5989 VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT PhysicalDeviceSwapchainMaintenance1FeaturesEXT
{};
5990 VkPhysicalDeviceSynchronization2Features PhysicalDeviceSynchronization2Features
{};
5991 VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT PhysicalDeviceTexelBufferAlignmentFeaturesEXT
{};
5992 VkPhysicalDeviceTextureCompressionASTCHDRFeatures PhysicalDeviceTextureCompressionASTCHDRFeatures
{};
5993 VkPhysicalDeviceTimelineSemaphoreFeatures PhysicalDeviceTimelineSemaphoreFeatures
{};
5994 VkPhysicalDeviceTransformFeedbackFeaturesEXT PhysicalDeviceTransformFeedbackFeaturesEXT
{};
5995 VkPhysicalDeviceUniformBufferStandardLayoutFeatures PhysicalDeviceUniformBufferStandardLayoutFeatures
{};
5996 VkPhysicalDeviceVariablePointersFeatures PhysicalDeviceVariablePointersFeatures
{};
5997 VkPhysicalDeviceVertexAttributeDivisorFeatures PhysicalDeviceVertexAttributeDivisorFeatures
{};
5998 VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
{};
5999 VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT PhysicalDeviceVertexInputDynamicStateFeaturesEXT
{};
6000 VkPhysicalDeviceVideoEncodeAV1FeaturesKHR PhysicalDeviceVideoEncodeAV1FeaturesKHR
{};
6001 VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR
{};
6002 VkPhysicalDeviceVideoMaintenance1FeaturesKHR PhysicalDeviceVideoMaintenance1FeaturesKHR
{};
6003 VkPhysicalDeviceVideoMaintenance2FeaturesKHR PhysicalDeviceVideoMaintenance2FeaturesKHR
{};
6004 VkPhysicalDeviceVulkan11Features PhysicalDeviceVulkan11Features
{};
6005 VkPhysicalDeviceVulkan12Features PhysicalDeviceVulkan12Features
{};
6006 VkPhysicalDeviceVulkan13Features PhysicalDeviceVulkan13Features
{};
6007 VkPhysicalDeviceVulkan14Features PhysicalDeviceVulkan14Features
{};
6008 VkPhysicalDeviceVulkanMemoryModelFeatures PhysicalDeviceVulkanMemoryModelFeatures
{};
6009 VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
{};
6010 VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
{};
6011 VkPhysicalDeviceYcbcrImageArraysFeaturesEXT PhysicalDeviceYcbcrImageArraysFeaturesEXT
{};
6012 VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
{};
6013 void initialize_chain(AppGpu
&gpu
, bool show_promoted_structs
) noexcept
{
6014 PhysicalDevice16BitStorageFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
;
6015 PhysicalDevice4444FormatsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
;
6016 PhysicalDevice8BitStorageFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
;
6017 PhysicalDeviceASTCDecodeFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
;
6018 PhysicalDeviceAccelerationStructureFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
;
6019 PhysicalDeviceAddressBindingReportFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
;
6020 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
;
6021 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
;
6022 PhysicalDeviceBlendOperationAdvancedFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
;
6023 PhysicalDeviceBorderColorSwizzleFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
;
6024 PhysicalDeviceBufferDeviceAddressFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
;
6025 PhysicalDeviceBufferDeviceAddressFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
;
6026 PhysicalDeviceColorWriteEnableFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
;
6027 PhysicalDeviceComputeShaderDerivativesFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
;
6028 PhysicalDeviceConditionalRenderingFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
;
6029 PhysicalDeviceCooperativeMatrixFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
;
6030 PhysicalDeviceCustomBorderColorFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
;
6031 PhysicalDeviceDepthBiasControlFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
;
6032 PhysicalDeviceDepthClampControlFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT
;
6033 PhysicalDeviceDepthClampZeroOneFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR
;
6034 PhysicalDeviceDepthClipControlFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
;
6035 PhysicalDeviceDepthClipEnableFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
;
6036 PhysicalDeviceDescriptorBufferFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
;
6037 PhysicalDeviceDescriptorIndexingFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
;
6038 PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT
;
6039 PhysicalDeviceDeviceMemoryReportFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
;
6040 PhysicalDeviceDynamicRenderingFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
;
6041 PhysicalDeviceDynamicRenderingLocalReadFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES
;
6042 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
;
6043 PhysicalDeviceExtendedDynamicState2FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
;
6044 PhysicalDeviceExtendedDynamicState3FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
;
6045 PhysicalDeviceExtendedDynamicStateFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
;
6046 PhysicalDeviceFaultFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
;
6047 PhysicalDeviceFragmentDensityMap2FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
;
6048 PhysicalDeviceFragmentDensityMapFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
;
6049 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
;
6050 PhysicalDeviceFragmentShaderInterlockFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
;
6051 PhysicalDeviceFragmentShadingRateFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
;
6052 PhysicalDeviceFrameBoundaryFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
;
6053 PhysicalDeviceGlobalPriorityQueryFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES
;
6054 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
;
6055 PhysicalDeviceHostImageCopyFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES
;
6056 PhysicalDeviceHostQueryResetFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
;
6057 PhysicalDeviceImage2DViewOf3DFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
;
6058 PhysicalDeviceImageCompressionControlFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
;
6059 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
;
6060 PhysicalDeviceImageRobustnessFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
;
6061 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
;
6062 PhysicalDeviceImageViewMinLodFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
;
6063 PhysicalDeviceImagelessFramebufferFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
;
6064 PhysicalDeviceIndexTypeUint8Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES
;
6065 PhysicalDeviceInlineUniformBlockFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
;
6066 PhysicalDeviceLegacyDitheringFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
;
6067 PhysicalDeviceLegacyVertexAttributesFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
;
6068 PhysicalDeviceLineRasterizationFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES
;
6069 PhysicalDeviceMaintenance4Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
;
6070 PhysicalDeviceMaintenance5Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES
;
6071 PhysicalDeviceMaintenance6Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES
;
6072 PhysicalDeviceMaintenance7FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
;
6073 PhysicalDeviceMaintenance8FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR
;
6074 PhysicalDeviceMapMemoryPlacedFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT
;
6075 PhysicalDeviceMemoryPriorityFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
;
6076 PhysicalDeviceMeshShaderFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
;
6077 PhysicalDeviceMultiDrawFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
;
6078 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
;
6079 PhysicalDeviceMultiviewFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
;
6080 PhysicalDeviceMutableDescriptorTypeFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
;
6081 PhysicalDeviceNestedCommandBufferFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
;
6082 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
;
6083 PhysicalDeviceOpacityMicromapFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
;
6084 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
;
6085 PhysicalDevicePerformanceQueryFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
;
6086 PhysicalDevicePipelineBinaryFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
;
6087 PhysicalDevicePipelineCreationCacheControlFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
;
6088 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
;
6089 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
;
6090 PhysicalDevicePipelinePropertiesFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
;
6091 PhysicalDevicePipelineProtectedAccessFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES
;
6092 PhysicalDevicePipelineRobustnessFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES
;
6093 #ifdef VK_ENABLE_BETA_EXTENSIONS
6094 PhysicalDevicePortabilitySubsetFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
;
6095 #endif // VK_ENABLE_BETA_EXTENSIONS
6096 PhysicalDevicePresentIdFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
;
6097 PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
;
6098 PhysicalDevicePresentWaitFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
;
6099 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
;
6100 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
;
6101 PhysicalDevicePrivateDataFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
;
6102 PhysicalDeviceProtectedMemoryFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
;
6103 PhysicalDeviceProvokingVertexFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
;
6104 PhysicalDeviceRGBA10X6FormatsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
;
6105 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
;
6106 PhysicalDeviceRayQueryFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
;
6107 PhysicalDeviceRayTracingMaintenance1FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
;
6108 PhysicalDeviceRayTracingPipelineFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
;
6109 PhysicalDeviceRayTracingPositionFetchFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
;
6110 PhysicalDeviceRobustness2FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
;
6111 PhysicalDeviceSamplerYcbcrConversionFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
;
6112 PhysicalDeviceScalarBlockLayoutFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
;
6113 PhysicalDeviceSeparateDepthStencilLayoutsFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
;
6114 PhysicalDeviceShaderAtomicFloat2FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
;
6115 PhysicalDeviceShaderAtomicFloatFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
;
6116 PhysicalDeviceShaderAtomicInt64Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
;
6117 PhysicalDeviceShaderClockFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
;
6118 PhysicalDeviceShaderDemoteToHelperInvocationFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
;
6119 PhysicalDeviceShaderDrawParametersFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
;
6120 PhysicalDeviceShaderExpectAssumeFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES
;
6121 PhysicalDeviceShaderFloat16Int8Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
;
6122 PhysicalDeviceShaderFloatControls2Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES
;
6123 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
;
6124 PhysicalDeviceShaderIntegerDotProductFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
;
6125 PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
;
6126 PhysicalDeviceShaderModuleIdentifierFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
;
6127 PhysicalDeviceShaderObjectFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
;
6128 PhysicalDeviceShaderQuadControlFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
;
6129 PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
;
6130 PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
;
6131 PhysicalDeviceShaderSubgroupExtendedTypesFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
;
6132 PhysicalDeviceShaderSubgroupRotateFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES
;
6133 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
;
6134 PhysicalDeviceShaderTerminateInvocationFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
;
6135 PhysicalDeviceShaderTileImageFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
;
6136 PhysicalDeviceSubgroupSizeControlFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
;
6137 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
;
6138 PhysicalDeviceSwapchainMaintenance1FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
;
6139 PhysicalDeviceSynchronization2Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
;
6140 PhysicalDeviceTexelBufferAlignmentFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
;
6141 PhysicalDeviceTextureCompressionASTCHDRFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
;
6142 PhysicalDeviceTimelineSemaphoreFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
;
6143 PhysicalDeviceTransformFeedbackFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
;
6144 PhysicalDeviceUniformBufferStandardLayoutFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
;
6145 PhysicalDeviceVariablePointersFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
;
6146 PhysicalDeviceVertexAttributeDivisorFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES
;
6147 PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT
;
6148 PhysicalDeviceVertexInputDynamicStateFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
;
6149 PhysicalDeviceVideoEncodeAV1FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR
;
6150 PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR
;
6151 PhysicalDeviceVideoMaintenance1FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR
;
6152 PhysicalDeviceVideoMaintenance2FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR
;
6153 PhysicalDeviceVulkan11Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
;
6154 PhysicalDeviceVulkan12Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
;
6155 PhysicalDeviceVulkan13Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
;
6156 PhysicalDeviceVulkan14Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES
;
6157 PhysicalDeviceVulkanMemoryModelFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
;
6158 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
;
6159 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
;
6160 PhysicalDeviceYcbcrImageArraysFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
;
6161 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
;
6162 std::vector
<VkBaseOutStructure
*> chain_members
{};
6163 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_16BIT_STORAGE_EXTENSION_NAME
))
6164 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
6165 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevice16BitStorageFeatures
));
6166 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_4444_FORMATS_EXTENSION_NAME
))
6167 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevice4444FormatsFeaturesEXT
));
6168 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_8BIT_STORAGE_EXTENSION_NAME
))
6169 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6170 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevice8BitStorageFeatures
));
6171 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME
))
6172 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceASTCDecodeFeaturesEXT
));
6173 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
))
6174 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAccelerationStructureFeaturesKHR
));
6175 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME
))
6176 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAddressBindingReportFeaturesEXT
));
6177 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME
))
6178 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
));
6179 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME
))
6180 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
));
6181 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME
))
6182 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBlendOperationAdvancedFeaturesEXT
));
6183 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME
))
6184 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBorderColorSwizzleFeaturesEXT
));
6185 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
))
6186 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6187 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBufferDeviceAddressFeatures
));
6188 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
))
6189 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBufferDeviceAddressFeaturesEXT
));
6190 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME
))
6191 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceColorWriteEnableFeaturesEXT
));
6192 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
)
6193 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
))
6194 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceComputeShaderDerivativesFeaturesKHR
));
6195 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME
))
6196 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceConditionalRenderingFeaturesEXT
));
6197 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME
))
6198 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceCooperativeMatrixFeaturesKHR
));
6199 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME
))
6200 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceCustomBorderColorFeaturesEXT
));
6201 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME
))
6202 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthBiasControlFeaturesEXT
));
6203 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME
))
6204 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthClampControlFeaturesEXT
));
6205 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME
)
6206 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME
))
6207 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthClampZeroOneFeaturesKHR
));
6208 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME
))
6209 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthClipControlFeaturesEXT
));
6210 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME
))
6211 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthClipEnableFeaturesEXT
));
6212 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
))
6213 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorBufferFeaturesEXT
));
6214 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
))
6215 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6216 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorIndexingFeatures
));
6217 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
))
6218 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
));
6219 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME
))
6220 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDeviceMemoryReportFeaturesEXT
));
6221 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME
))
6222 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6223 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDynamicRenderingFeatures
));
6224 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME
))
6225 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6226 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDynamicRenderingLocalReadFeatures
));
6227 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME
))
6228 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
));
6229 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME
))
6230 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExtendedDynamicState2FeaturesEXT
));
6231 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME
))
6232 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExtendedDynamicState3FeaturesEXT
));
6233 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME
))
6234 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExtendedDynamicStateFeaturesEXT
));
6235 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_FAULT_EXTENSION_NAME
))
6236 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFaultFeaturesEXT
));
6237 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME
))
6238 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentDensityMap2FeaturesEXT
));
6239 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME
))
6240 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentDensityMapFeaturesEXT
));
6241 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
)
6242 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
))
6243 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
));
6244 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME
))
6245 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShaderInterlockFeaturesEXT
));
6246 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME
))
6247 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShadingRateFeaturesKHR
));
6248 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME
))
6249 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFrameBoundaryFeaturesEXT
));
6250 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME
)
6251 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME
))
6252 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6253 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceGlobalPriorityQueryFeatures
));
6254 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME
))
6255 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
));
6256 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME
))
6257 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6258 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceHostImageCopyFeatures
));
6259 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME
))
6260 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6261 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceHostQueryResetFeatures
));
6262 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME
))
6263 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImage2DViewOf3DFeaturesEXT
));
6264 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME
))
6265 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageCompressionControlFeaturesEXT
));
6266 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME
))
6267 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
));
6268 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME
))
6269 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6270 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageRobustnessFeatures
));
6271 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME
))
6272 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
));
6273 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME
))
6274 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageViewMinLodFeaturesEXT
));
6275 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME
))
6276 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6277 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImagelessFramebufferFeatures
));
6278 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME
)
6279 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME
))
6280 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6281 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceIndexTypeUint8Features
));
6282 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME
))
6283 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6284 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceInlineUniformBlockFeatures
));
6285 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_DITHERING_EXTENSION_NAME
))
6286 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLegacyDitheringFeaturesEXT
));
6287 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME
))
6288 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLegacyVertexAttributesFeaturesEXT
));
6289 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME
)
6290 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME
))
6291 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6292 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLineRasterizationFeatures
));
6293 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_4_EXTENSION_NAME
))
6294 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6295 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance4Features
));
6296 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_5_EXTENSION_NAME
))
6297 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6298 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance5Features
));
6299 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_6_EXTENSION_NAME
))
6300 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6301 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance6Features
));
6302 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME
))
6303 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance7FeaturesKHR
));
6304 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_8_EXTENSION_NAME
))
6305 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance8FeaturesKHR
));
6306 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME
))
6307 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMapMemoryPlacedFeaturesEXT
));
6308 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME
))
6309 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMemoryPriorityFeaturesEXT
));
6310 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MESH_SHADER_EXTENSION_NAME
))
6311 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMeshShaderFeaturesEXT
));
6312 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MULTI_DRAW_EXTENSION_NAME
))
6313 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultiDrawFeaturesEXT
));
6314 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME
))
6315 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
));
6316 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MULTIVIEW_EXTENSION_NAME
))
6317 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
6318 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultiviewFeatures
));
6319 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME
)
6320 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME
))
6321 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMutableDescriptorTypeFeaturesEXT
));
6322 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME
))
6323 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceNestedCommandBufferFeaturesEXT
));
6324 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME
))
6325 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
));
6326 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME
))
6327 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceOpacityMicromapFeaturesEXT
));
6328 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME
))
6329 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
));
6330 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
))
6331 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePerformanceQueryFeaturesKHR
));
6332 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PIPELINE_BINARY_EXTENSION_NAME
))
6333 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineBinaryFeaturesKHR
));
6334 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME
))
6335 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6336 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineCreationCacheControlFeatures
));
6337 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME
))
6338 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
));
6339 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME
))
6340 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
));
6341 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME
))
6342 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelinePropertiesFeaturesEXT
));
6343 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME
))
6344 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6345 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineProtectedAccessFeatures
));
6346 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME
))
6347 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6348 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineRobustnessFeatures
));
6349 #ifdef VK_ENABLE_BETA_EXTENSIONS
6350 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
))
6351 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePortabilitySubsetFeaturesKHR
));
6352 #endif // VK_ENABLE_BETA_EXTENSIONS
6353 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PRESENT_ID_EXTENSION_NAME
))
6354 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePresentIdFeaturesKHR
));
6355 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME
))
6356 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
));
6357 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PRESENT_WAIT_EXTENSION_NAME
))
6358 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePresentWaitFeaturesKHR
));
6359 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME
))
6360 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
));
6361 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME
))
6362 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
));
6363 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRIVATE_DATA_EXTENSION_NAME
))
6364 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6365 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePrivateDataFeatures
));
6366 if (gpu
.api_version
== VK_API_VERSION_1_1
|| show_promoted_structs
)
6367 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceProtectedMemoryFeatures
));
6368 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME
))
6369 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceProvokingVertexFeaturesEXT
));
6370 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME
))
6371 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRGBA10X6FormatsFeaturesEXT
));
6372 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME
)
6373 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME
))
6374 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
));
6375 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_QUERY_EXTENSION_NAME
))
6376 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayQueryFeaturesKHR
));
6377 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME
))
6378 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayTracingMaintenance1FeaturesKHR
));
6379 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
))
6380 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayTracingPipelineFeaturesKHR
));
6381 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME
))
6382 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayTracingPositionFetchFeaturesKHR
));
6383 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME
))
6384 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRobustness2FeaturesEXT
));
6385 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME
))
6386 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
6387 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSamplerYcbcrConversionFeatures
));
6388 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME
))
6389 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6390 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceScalarBlockLayoutFeatures
));
6391 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME
))
6392 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6393 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSeparateDepthStencilLayoutsFeatures
));
6394 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
))
6395 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderAtomicFloat2FeaturesEXT
));
6396 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
))
6397 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderAtomicFloatFeaturesEXT
));
6398 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME
))
6399 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6400 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderAtomicInt64Features
));
6401 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_CLOCK_EXTENSION_NAME
))
6402 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderClockFeaturesKHR
));
6403 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME
))
6404 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6405 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderDemoteToHelperInvocationFeatures
));
6406 if (gpu
.api_version
== VK_API_VERSION_1_1
|| show_promoted_structs
)
6407 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderDrawParametersFeatures
));
6408 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME
))
6409 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6410 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderExpectAssumeFeatures
));
6411 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME
))
6412 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6413 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderFloat16Int8Features
));
6414 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME
))
6415 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6416 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderFloatControls2Features
));
6417 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME
))
6418 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
));
6419 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
))
6420 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6421 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderIntegerDotProductFeatures
));
6422 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME
))
6423 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
));
6424 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME
))
6425 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderModuleIdentifierFeaturesEXT
));
6426 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_OBJECT_EXTENSION_NAME
))
6427 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderObjectFeaturesEXT
));
6428 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME
))
6429 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderQuadControlFeaturesKHR
));
6430 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME
))
6431 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
));
6432 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME
))
6433 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
));
6434 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME
))
6435 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6436 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderSubgroupExtendedTypesFeatures
));
6437 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME
))
6438 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6439 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderSubgroupRotateFeatures
));
6440 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME
))
6441 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
));
6442 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME
))
6443 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6444 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderTerminateInvocationFeatures
));
6445 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME
))
6446 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderTileImageFeaturesEXT
));
6447 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME
))
6448 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6449 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSubgroupSizeControlFeatures
));
6450 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME
))
6451 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
));
6452 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME
))
6453 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSwapchainMaintenance1FeaturesEXT
));
6454 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME
))
6455 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6456 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSynchronization2Features
));
6457 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME
))
6458 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTexelBufferAlignmentFeaturesEXT
));
6459 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME
))
6460 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6461 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTextureCompressionASTCHDRFeatures
));
6462 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME
))
6463 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6464 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTimelineSemaphoreFeatures
));
6465 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
))
6466 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTransformFeedbackFeaturesEXT
));
6467 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME
))
6468 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6469 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceUniformBufferStandardLayoutFeatures
));
6470 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME
))
6471 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
6472 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVariablePointersFeatures
));
6473 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
)
6474 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
))
6475 && (gpu
.api_version
< VK_API_VERSION_1_4
|| show_promoted_structs
))
6476 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexAttributeDivisorFeatures
));
6477 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME
))
6478 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexAttributeRobustnessFeaturesEXT
));
6479 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME
))
6480 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexInputDynamicStateFeaturesEXT
));
6481 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME
))
6482 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVideoEncodeAV1FeaturesKHR
));
6483 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
))
6484 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR
));
6485 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME
))
6486 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVideoMaintenance1FeaturesKHR
));
6487 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME
))
6488 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVideoMaintenance2FeaturesKHR
));
6489 if ((gpu
.api_version
>= VK_API_VERSION_1_2
))
6490 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan11Features
));
6491 if ((gpu
.api_version
>= VK_API_VERSION_1_2
))
6492 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan12Features
));
6493 if ((gpu
.api_version
>= VK_API_VERSION_1_3
))
6494 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan13Features
));
6495 if ((gpu
.api_version
>= VK_API_VERSION_1_4
))
6496 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan14Features
));
6497 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME
))
6498 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
6499 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkanMemoryModelFeatures
));
6500 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME
))
6501 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
));
6502 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME
))
6503 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
));
6504 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME
))
6505 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceYcbcrImageArraysFeaturesEXT
));
6506 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME
))
6507 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
6508 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
));
6510 if (!chain_members
.empty()) {
6511 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
6512 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
6514 start_of_chain
= chain_members
[0];
6518 void setup_phys_device_features2_chain(VkPhysicalDeviceFeatures2
& start
, std::unique_ptr
<phys_device_features2_chain
>& chain
, AppGpu
&gpu
,bool show_promoted_structs
){
6519 chain
= std::unique_ptr
<phys_device_features2_chain
>(new phys_device_features2_chain());
6520 chain
->initialize_chain(gpu
,show_promoted_structs
);
6521 start
.pNext
= chain
->start_of_chain
;
6524 void chain_iterator_phys_device_features2(Printer
&p
, AppGpu
&gpu
, bool show_promoted_structs
, const void * place
) {
6526 const VkBaseOutStructure
*structure
= (const VkBaseOutStructure
*)place
;
6528 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
) {
6529 const VkPhysicalDevice16BitStorageFeatures
* props
= (const VkPhysicalDevice16BitStorageFeatures
*)structure
;
6530 DumpVkPhysicalDevice16BitStorageFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDevice16BitStorageFeatures":"VkPhysicalDevice16BitStorageFeaturesKHR", *props
);
6533 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
) {
6534 const VkPhysicalDevice4444FormatsFeaturesEXT
* props
= (const VkPhysicalDevice4444FormatsFeaturesEXT
*)structure
;
6535 DumpVkPhysicalDevice4444FormatsFeaturesEXT(p
, "VkPhysicalDevice4444FormatsFeaturesEXT", *props
);
6538 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
) {
6539 const VkPhysicalDevice8BitStorageFeatures
* props
= (const VkPhysicalDevice8BitStorageFeatures
*)structure
;
6540 DumpVkPhysicalDevice8BitStorageFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDevice8BitStorageFeatures":"VkPhysicalDevice8BitStorageFeaturesKHR", *props
);
6543 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
) {
6544 const VkPhysicalDeviceASTCDecodeFeaturesEXT
* props
= (const VkPhysicalDeviceASTCDecodeFeaturesEXT
*)structure
;
6545 DumpVkPhysicalDeviceASTCDecodeFeaturesEXT(p
, "VkPhysicalDeviceASTCDecodeFeaturesEXT", *props
);
6548 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
) {
6549 const VkPhysicalDeviceAccelerationStructureFeaturesKHR
* props
= (const VkPhysicalDeviceAccelerationStructureFeaturesKHR
*)structure
;
6550 DumpVkPhysicalDeviceAccelerationStructureFeaturesKHR(p
, "VkPhysicalDeviceAccelerationStructureFeaturesKHR", *props
);
6553 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
) {
6554 const VkPhysicalDeviceAddressBindingReportFeaturesEXT
* props
= (const VkPhysicalDeviceAddressBindingReportFeaturesEXT
*)structure
;
6555 DumpVkPhysicalDeviceAddressBindingReportFeaturesEXT(p
, "VkPhysicalDeviceAddressBindingReportFeaturesEXT", *props
);
6558 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
) {
6559 const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
* props
= (const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
*)structure
;
6560 DumpVkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(p
, "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", *props
);
6563 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
) {
6564 const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
* props
= (const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
*)structure
;
6565 DumpVkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(p
, "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT", *props
);
6568 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
) {
6569 const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
* props
= (const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
*)structure
;
6570 DumpVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(p
, "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT", *props
);
6573 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
) {
6574 const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
* props
= (const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
*)structure
;
6575 DumpVkPhysicalDeviceBorderColorSwizzleFeaturesEXT(p
, "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT", *props
);
6578 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
) {
6579 const VkPhysicalDeviceBufferDeviceAddressFeatures
* props
= (const VkPhysicalDeviceBufferDeviceAddressFeatures
*)structure
;
6580 DumpVkPhysicalDeviceBufferDeviceAddressFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceBufferDeviceAddressFeatures":"VkPhysicalDeviceBufferDeviceAddressFeaturesKHR", *props
);
6583 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
) {
6584 const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
* props
= (const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
*)structure
;
6585 DumpVkPhysicalDeviceBufferDeviceAddressFeaturesEXT(p
, "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", *props
);
6588 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
) {
6589 const VkPhysicalDeviceColorWriteEnableFeaturesEXT
* props
= (const VkPhysicalDeviceColorWriteEnableFeaturesEXT
*)structure
;
6590 DumpVkPhysicalDeviceColorWriteEnableFeaturesEXT(p
, "VkPhysicalDeviceColorWriteEnableFeaturesEXT", *props
);
6593 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
) {
6594 const VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
* props
= (const VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
*)structure
;
6595 DumpVkPhysicalDeviceComputeShaderDerivativesFeaturesKHR(p
, "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR", *props
);
6598 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
) {
6599 const VkPhysicalDeviceConditionalRenderingFeaturesEXT
* props
= (const VkPhysicalDeviceConditionalRenderingFeaturesEXT
*)structure
;
6600 DumpVkPhysicalDeviceConditionalRenderingFeaturesEXT(p
, "VkPhysicalDeviceConditionalRenderingFeaturesEXT", *props
);
6603 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
) {
6604 const VkPhysicalDeviceCooperativeMatrixFeaturesKHR
* props
= (const VkPhysicalDeviceCooperativeMatrixFeaturesKHR
*)structure
;
6605 DumpVkPhysicalDeviceCooperativeMatrixFeaturesKHR(p
, "VkPhysicalDeviceCooperativeMatrixFeaturesKHR", *props
);
6608 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
) {
6609 const VkPhysicalDeviceCustomBorderColorFeaturesEXT
* props
= (const VkPhysicalDeviceCustomBorderColorFeaturesEXT
*)structure
;
6610 DumpVkPhysicalDeviceCustomBorderColorFeaturesEXT(p
, "VkPhysicalDeviceCustomBorderColorFeaturesEXT", *props
);
6613 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
) {
6614 const VkPhysicalDeviceDepthBiasControlFeaturesEXT
* props
= (const VkPhysicalDeviceDepthBiasControlFeaturesEXT
*)structure
;
6615 DumpVkPhysicalDeviceDepthBiasControlFeaturesEXT(p
, "VkPhysicalDeviceDepthBiasControlFeaturesEXT", *props
);
6618 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT
) {
6619 const VkPhysicalDeviceDepthClampControlFeaturesEXT
* props
= (const VkPhysicalDeviceDepthClampControlFeaturesEXT
*)structure
;
6620 DumpVkPhysicalDeviceDepthClampControlFeaturesEXT(p
, "VkPhysicalDeviceDepthClampControlFeaturesEXT", *props
);
6623 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR
) {
6624 const VkPhysicalDeviceDepthClampZeroOneFeaturesKHR
* props
= (const VkPhysicalDeviceDepthClampZeroOneFeaturesKHR
*)structure
;
6625 DumpVkPhysicalDeviceDepthClampZeroOneFeaturesKHR(p
, "VkPhysicalDeviceDepthClampZeroOneFeaturesKHR", *props
);
6628 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
) {
6629 const VkPhysicalDeviceDepthClipControlFeaturesEXT
* props
= (const VkPhysicalDeviceDepthClipControlFeaturesEXT
*)structure
;
6630 DumpVkPhysicalDeviceDepthClipControlFeaturesEXT(p
, "VkPhysicalDeviceDepthClipControlFeaturesEXT", *props
);
6633 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
) {
6634 const VkPhysicalDeviceDepthClipEnableFeaturesEXT
* props
= (const VkPhysicalDeviceDepthClipEnableFeaturesEXT
*)structure
;
6635 DumpVkPhysicalDeviceDepthClipEnableFeaturesEXT(p
, "VkPhysicalDeviceDepthClipEnableFeaturesEXT", *props
);
6638 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
) {
6639 const VkPhysicalDeviceDescriptorBufferFeaturesEXT
* props
= (const VkPhysicalDeviceDescriptorBufferFeaturesEXT
*)structure
;
6640 DumpVkPhysicalDeviceDescriptorBufferFeaturesEXT(p
, "VkPhysicalDeviceDescriptorBufferFeaturesEXT", *props
);
6643 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
) {
6644 const VkPhysicalDeviceDescriptorIndexingFeatures
* props
= (const VkPhysicalDeviceDescriptorIndexingFeatures
*)structure
;
6645 DumpVkPhysicalDeviceDescriptorIndexingFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceDescriptorIndexingFeatures":"VkPhysicalDeviceDescriptorIndexingFeaturesEXT", *props
);
6648 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT
) {
6649 const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
* props
= (const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
*)structure
;
6650 DumpVkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT(p
, "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT", *props
);
6653 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
) {
6654 const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
* props
= (const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
*)structure
;
6655 DumpVkPhysicalDeviceDeviceMemoryReportFeaturesEXT(p
, "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT", *props
);
6658 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
) {
6659 const VkPhysicalDeviceDynamicRenderingFeatures
* props
= (const VkPhysicalDeviceDynamicRenderingFeatures
*)structure
;
6660 DumpVkPhysicalDeviceDynamicRenderingFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceDynamicRenderingFeatures":"VkPhysicalDeviceDynamicRenderingFeaturesKHR", *props
);
6663 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES
) {
6664 const VkPhysicalDeviceDynamicRenderingLocalReadFeatures
* props
= (const VkPhysicalDeviceDynamicRenderingLocalReadFeatures
*)structure
;
6665 DumpVkPhysicalDeviceDynamicRenderingLocalReadFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceDynamicRenderingLocalReadFeatures":"VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR", *props
);
6668 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
) {
6669 const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
* props
= (const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
*)structure
;
6670 DumpVkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(p
, "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT", *props
);
6673 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
) {
6674 const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
* props
= (const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
*)structure
;
6675 DumpVkPhysicalDeviceExtendedDynamicState2FeaturesEXT(p
, "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT", *props
);
6678 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
) {
6679 const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT
* props
= (const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT
*)structure
;
6680 DumpVkPhysicalDeviceExtendedDynamicState3FeaturesEXT(p
, "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT", *props
);
6683 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
) {
6684 const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
* props
= (const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
*)structure
;
6685 DumpVkPhysicalDeviceExtendedDynamicStateFeaturesEXT(p
, "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT", *props
);
6688 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
) {
6689 const VkPhysicalDeviceFaultFeaturesEXT
* props
= (const VkPhysicalDeviceFaultFeaturesEXT
*)structure
;
6690 DumpVkPhysicalDeviceFaultFeaturesEXT(p
, "VkPhysicalDeviceFaultFeaturesEXT", *props
);
6693 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
) {
6694 const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
* props
= (const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
*)structure
;
6695 DumpVkPhysicalDeviceFragmentDensityMap2FeaturesEXT(p
, "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT", *props
);
6698 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
) {
6699 const VkPhysicalDeviceFragmentDensityMapFeaturesEXT
* props
= (const VkPhysicalDeviceFragmentDensityMapFeaturesEXT
*)structure
;
6700 DumpVkPhysicalDeviceFragmentDensityMapFeaturesEXT(p
, "VkPhysicalDeviceFragmentDensityMapFeaturesEXT", *props
);
6703 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
) {
6704 const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
* props
= (const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
*)structure
;
6705 DumpVkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(p
, "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR", *props
);
6708 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
) {
6709 const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
* props
= (const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
*)structure
;
6710 DumpVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(p
, "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT", *props
);
6713 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
) {
6714 const VkPhysicalDeviceFragmentShadingRateFeaturesKHR
* props
= (const VkPhysicalDeviceFragmentShadingRateFeaturesKHR
*)structure
;
6715 DumpVkPhysicalDeviceFragmentShadingRateFeaturesKHR(p
, "VkPhysicalDeviceFragmentShadingRateFeaturesKHR", *props
);
6718 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
) {
6719 const VkPhysicalDeviceFrameBoundaryFeaturesEXT
* props
= (const VkPhysicalDeviceFrameBoundaryFeaturesEXT
*)structure
;
6720 DumpVkPhysicalDeviceFrameBoundaryFeaturesEXT(p
, "VkPhysicalDeviceFrameBoundaryFeaturesEXT", *props
);
6723 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES
) {
6724 const VkPhysicalDeviceGlobalPriorityQueryFeatures
* props
= (const VkPhysicalDeviceGlobalPriorityQueryFeatures
*)structure
;
6725 DumpVkPhysicalDeviceGlobalPriorityQueryFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceGlobalPriorityQueryFeatures":"VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT", *props
);
6728 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
) {
6729 const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
* props
= (const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
*)structure
;
6730 DumpVkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(p
, "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", *props
);
6733 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES
) {
6734 const VkPhysicalDeviceHostImageCopyFeatures
* props
= (const VkPhysicalDeviceHostImageCopyFeatures
*)structure
;
6735 DumpVkPhysicalDeviceHostImageCopyFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceHostImageCopyFeatures":"VkPhysicalDeviceHostImageCopyFeaturesEXT", *props
);
6738 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
) {
6739 const VkPhysicalDeviceHostQueryResetFeatures
* props
= (const VkPhysicalDeviceHostQueryResetFeatures
*)structure
;
6740 DumpVkPhysicalDeviceHostQueryResetFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceHostQueryResetFeatures":"VkPhysicalDeviceHostQueryResetFeaturesEXT", *props
);
6743 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
) {
6744 const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
* props
= (const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
*)structure
;
6745 DumpVkPhysicalDeviceImage2DViewOf3DFeaturesEXT(p
, "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT", *props
);
6748 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
) {
6749 const VkPhysicalDeviceImageCompressionControlFeaturesEXT
* props
= (const VkPhysicalDeviceImageCompressionControlFeaturesEXT
*)structure
;
6750 DumpVkPhysicalDeviceImageCompressionControlFeaturesEXT(p
, "VkPhysicalDeviceImageCompressionControlFeaturesEXT", *props
);
6753 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
) {
6754 const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
* props
= (const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
*)structure
;
6755 DumpVkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(p
, "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", *props
);
6758 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
) {
6759 const VkPhysicalDeviceImageRobustnessFeatures
* props
= (const VkPhysicalDeviceImageRobustnessFeatures
*)structure
;
6760 DumpVkPhysicalDeviceImageRobustnessFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceImageRobustnessFeatures":"VkPhysicalDeviceImageRobustnessFeaturesEXT", *props
);
6763 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
) {
6764 const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT
* props
= (const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT
*)structure
;
6765 DumpVkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(p
, "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT", *props
);
6768 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
) {
6769 const VkPhysicalDeviceImageViewMinLodFeaturesEXT
* props
= (const VkPhysicalDeviceImageViewMinLodFeaturesEXT
*)structure
;
6770 DumpVkPhysicalDeviceImageViewMinLodFeaturesEXT(p
, "VkPhysicalDeviceImageViewMinLodFeaturesEXT", *props
);
6773 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
) {
6774 const VkPhysicalDeviceImagelessFramebufferFeatures
* props
= (const VkPhysicalDeviceImagelessFramebufferFeatures
*)structure
;
6775 DumpVkPhysicalDeviceImagelessFramebufferFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceImagelessFramebufferFeatures":"VkPhysicalDeviceImagelessFramebufferFeaturesKHR", *props
);
6778 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES
) {
6779 const VkPhysicalDeviceIndexTypeUint8Features
* props
= (const VkPhysicalDeviceIndexTypeUint8Features
*)structure
;
6780 DumpVkPhysicalDeviceIndexTypeUint8Features(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceIndexTypeUint8Features":"VkPhysicalDeviceIndexTypeUint8FeaturesKHR", *props
);
6783 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
) {
6784 const VkPhysicalDeviceInlineUniformBlockFeatures
* props
= (const VkPhysicalDeviceInlineUniformBlockFeatures
*)structure
;
6785 DumpVkPhysicalDeviceInlineUniformBlockFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceInlineUniformBlockFeatures":"VkPhysicalDeviceInlineUniformBlockFeaturesEXT", *props
);
6788 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
) {
6789 const VkPhysicalDeviceLegacyDitheringFeaturesEXT
* props
= (const VkPhysicalDeviceLegacyDitheringFeaturesEXT
*)structure
;
6790 DumpVkPhysicalDeviceLegacyDitheringFeaturesEXT(p
, "VkPhysicalDeviceLegacyDitheringFeaturesEXT", *props
);
6793 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
) {
6794 const VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT
* props
= (const VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT
*)structure
;
6795 DumpVkPhysicalDeviceLegacyVertexAttributesFeaturesEXT(p
, "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT", *props
);
6798 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES
) {
6799 const VkPhysicalDeviceLineRasterizationFeatures
* props
= (const VkPhysicalDeviceLineRasterizationFeatures
*)structure
;
6800 DumpVkPhysicalDeviceLineRasterizationFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceLineRasterizationFeatures":"VkPhysicalDeviceLineRasterizationFeaturesKHR", *props
);
6803 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
) {
6804 const VkPhysicalDeviceMaintenance4Features
* props
= (const VkPhysicalDeviceMaintenance4Features
*)structure
;
6805 DumpVkPhysicalDeviceMaintenance4Features(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceMaintenance4Features":"VkPhysicalDeviceMaintenance4FeaturesKHR", *props
);
6808 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES
) {
6809 const VkPhysicalDeviceMaintenance5Features
* props
= (const VkPhysicalDeviceMaintenance5Features
*)structure
;
6810 DumpVkPhysicalDeviceMaintenance5Features(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceMaintenance5Features":"VkPhysicalDeviceMaintenance5FeaturesKHR", *props
);
6813 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES
) {
6814 const VkPhysicalDeviceMaintenance6Features
* props
= (const VkPhysicalDeviceMaintenance6Features
*)structure
;
6815 DumpVkPhysicalDeviceMaintenance6Features(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceMaintenance6Features":"VkPhysicalDeviceMaintenance6FeaturesKHR", *props
);
6818 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
) {
6819 const VkPhysicalDeviceMaintenance7FeaturesKHR
* props
= (const VkPhysicalDeviceMaintenance7FeaturesKHR
*)structure
;
6820 DumpVkPhysicalDeviceMaintenance7FeaturesKHR(p
, "VkPhysicalDeviceMaintenance7FeaturesKHR", *props
);
6823 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR
) {
6824 const VkPhysicalDeviceMaintenance8FeaturesKHR
* props
= (const VkPhysicalDeviceMaintenance8FeaturesKHR
*)structure
;
6825 DumpVkPhysicalDeviceMaintenance8FeaturesKHR(p
, "VkPhysicalDeviceMaintenance8FeaturesKHR", *props
);
6828 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT
) {
6829 const VkPhysicalDeviceMapMemoryPlacedFeaturesEXT
* props
= (const VkPhysicalDeviceMapMemoryPlacedFeaturesEXT
*)structure
;
6830 DumpVkPhysicalDeviceMapMemoryPlacedFeaturesEXT(p
, "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT", *props
);
6833 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
) {
6834 const VkPhysicalDeviceMemoryPriorityFeaturesEXT
* props
= (const VkPhysicalDeviceMemoryPriorityFeaturesEXT
*)structure
;
6835 DumpVkPhysicalDeviceMemoryPriorityFeaturesEXT(p
, "VkPhysicalDeviceMemoryPriorityFeaturesEXT", *props
);
6838 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
) {
6839 const VkPhysicalDeviceMeshShaderFeaturesEXT
* props
= (const VkPhysicalDeviceMeshShaderFeaturesEXT
*)structure
;
6840 DumpVkPhysicalDeviceMeshShaderFeaturesEXT(p
, "VkPhysicalDeviceMeshShaderFeaturesEXT", *props
);
6843 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
) {
6844 const VkPhysicalDeviceMultiDrawFeaturesEXT
* props
= (const VkPhysicalDeviceMultiDrawFeaturesEXT
*)structure
;
6845 DumpVkPhysicalDeviceMultiDrawFeaturesEXT(p
, "VkPhysicalDeviceMultiDrawFeaturesEXT", *props
);
6848 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
) {
6849 const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
* props
= (const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
*)structure
;
6850 DumpVkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(p
, "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", *props
);
6853 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
) {
6854 const VkPhysicalDeviceMultiviewFeatures
* props
= (const VkPhysicalDeviceMultiviewFeatures
*)structure
;
6855 DumpVkPhysicalDeviceMultiviewFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceMultiviewFeatures":"VkPhysicalDeviceMultiviewFeaturesKHR", *props
);
6858 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
) {
6859 const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT
* props
= (const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT
*)structure
;
6860 DumpVkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(p
, "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT", *props
);
6863 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
) {
6864 const VkPhysicalDeviceNestedCommandBufferFeaturesEXT
* props
= (const VkPhysicalDeviceNestedCommandBufferFeaturesEXT
*)structure
;
6865 DumpVkPhysicalDeviceNestedCommandBufferFeaturesEXT(p
, "VkPhysicalDeviceNestedCommandBufferFeaturesEXT", *props
);
6868 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
) {
6869 const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
* props
= (const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
*)structure
;
6870 DumpVkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(p
, "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT", *props
);
6873 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
) {
6874 const VkPhysicalDeviceOpacityMicromapFeaturesEXT
* props
= (const VkPhysicalDeviceOpacityMicromapFeaturesEXT
*)structure
;
6875 DumpVkPhysicalDeviceOpacityMicromapFeaturesEXT(p
, "VkPhysicalDeviceOpacityMicromapFeaturesEXT", *props
);
6878 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
) {
6879 const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
* props
= (const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
*)structure
;
6880 DumpVkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(p
, "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", *props
);
6883 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
) {
6884 const VkPhysicalDevicePerformanceQueryFeaturesKHR
* props
= (const VkPhysicalDevicePerformanceQueryFeaturesKHR
*)structure
;
6885 DumpVkPhysicalDevicePerformanceQueryFeaturesKHR(p
, "VkPhysicalDevicePerformanceQueryFeaturesKHR", *props
);
6888 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
) {
6889 const VkPhysicalDevicePipelineBinaryFeaturesKHR
* props
= (const VkPhysicalDevicePipelineBinaryFeaturesKHR
*)structure
;
6890 DumpVkPhysicalDevicePipelineBinaryFeaturesKHR(p
, "VkPhysicalDevicePipelineBinaryFeaturesKHR", *props
);
6893 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
) {
6894 const VkPhysicalDevicePipelineCreationCacheControlFeatures
* props
= (const VkPhysicalDevicePipelineCreationCacheControlFeatures
*)structure
;
6895 DumpVkPhysicalDevicePipelineCreationCacheControlFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDevicePipelineCreationCacheControlFeatures":"VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT", *props
);
6898 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
) {
6899 const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
* props
= (const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
*)structure
;
6900 DumpVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(p
, "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR", *props
);
6903 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
) {
6904 const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
* props
= (const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*)structure
;
6905 DumpVkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(p
, "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT", *props
);
6908 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
) {
6909 const VkPhysicalDevicePipelinePropertiesFeaturesEXT
* props
= (const VkPhysicalDevicePipelinePropertiesFeaturesEXT
*)structure
;
6910 DumpVkPhysicalDevicePipelinePropertiesFeaturesEXT(p
, "VkPhysicalDevicePipelinePropertiesFeaturesEXT", *props
);
6913 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES
) {
6914 const VkPhysicalDevicePipelineProtectedAccessFeatures
* props
= (const VkPhysicalDevicePipelineProtectedAccessFeatures
*)structure
;
6915 DumpVkPhysicalDevicePipelineProtectedAccessFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDevicePipelineProtectedAccessFeatures":"VkPhysicalDevicePipelineProtectedAccessFeaturesEXT", *props
);
6918 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES
) {
6919 const VkPhysicalDevicePipelineRobustnessFeatures
* props
= (const VkPhysicalDevicePipelineRobustnessFeatures
*)structure
;
6920 DumpVkPhysicalDevicePipelineRobustnessFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDevicePipelineRobustnessFeatures":"VkPhysicalDevicePipelineRobustnessFeaturesEXT", *props
);
6923 #ifdef VK_ENABLE_BETA_EXTENSIONS
6924 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
&& p
.Type() != OutputType::json
) {
6925 const VkPhysicalDevicePortabilitySubsetFeaturesKHR
* props
= (const VkPhysicalDevicePortabilitySubsetFeaturesKHR
*)structure
;
6926 DumpVkPhysicalDevicePortabilitySubsetFeaturesKHR(p
, "VkPhysicalDevicePortabilitySubsetFeaturesKHR", *props
);
6929 #endif // VK_ENABLE_BETA_EXTENSIONS
6930 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
) {
6931 const VkPhysicalDevicePresentIdFeaturesKHR
* props
= (const VkPhysicalDevicePresentIdFeaturesKHR
*)structure
;
6932 DumpVkPhysicalDevicePresentIdFeaturesKHR(p
, "VkPhysicalDevicePresentIdFeaturesKHR", *props
);
6935 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
) {
6936 const VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
* props
= (const VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
*)structure
;
6937 DumpVkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(p
, "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT", *props
);
6940 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
) {
6941 const VkPhysicalDevicePresentWaitFeaturesKHR
* props
= (const VkPhysicalDevicePresentWaitFeaturesKHR
*)structure
;
6942 DumpVkPhysicalDevicePresentWaitFeaturesKHR(p
, "VkPhysicalDevicePresentWaitFeaturesKHR", *props
);
6945 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
) {
6946 const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
* props
= (const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
*)structure
;
6947 DumpVkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(p
, "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", *props
);
6950 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
) {
6951 const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
* props
= (const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
*)structure
;
6952 DumpVkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(p
, "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", *props
);
6955 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
) {
6956 const VkPhysicalDevicePrivateDataFeatures
* props
= (const VkPhysicalDevicePrivateDataFeatures
*)structure
;
6957 DumpVkPhysicalDevicePrivateDataFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDevicePrivateDataFeatures":"VkPhysicalDevicePrivateDataFeaturesEXT", *props
);
6960 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
) {
6961 const VkPhysicalDeviceProtectedMemoryFeatures
* props
= (const VkPhysicalDeviceProtectedMemoryFeatures
*)structure
;
6962 DumpVkPhysicalDeviceProtectedMemoryFeatures(p
, "VkPhysicalDeviceProtectedMemoryFeatures", *props
);
6965 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
) {
6966 const VkPhysicalDeviceProvokingVertexFeaturesEXT
* props
= (const VkPhysicalDeviceProvokingVertexFeaturesEXT
*)structure
;
6967 DumpVkPhysicalDeviceProvokingVertexFeaturesEXT(p
, "VkPhysicalDeviceProvokingVertexFeaturesEXT", *props
);
6970 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
) {
6971 const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
* props
= (const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
*)structure
;
6972 DumpVkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(p
, "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT", *props
);
6975 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
) {
6976 const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
* props
= (const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
*)structure
;
6977 DumpVkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(p
, "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT", *props
);
6980 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
) {
6981 const VkPhysicalDeviceRayQueryFeaturesKHR
* props
= (const VkPhysicalDeviceRayQueryFeaturesKHR
*)structure
;
6982 DumpVkPhysicalDeviceRayQueryFeaturesKHR(p
, "VkPhysicalDeviceRayQueryFeaturesKHR", *props
);
6985 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
) {
6986 const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
* props
= (const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
*)structure
;
6987 DumpVkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(p
, "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR", *props
);
6990 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
) {
6991 const VkPhysicalDeviceRayTracingPipelineFeaturesKHR
* props
= (const VkPhysicalDeviceRayTracingPipelineFeaturesKHR
*)structure
;
6992 DumpVkPhysicalDeviceRayTracingPipelineFeaturesKHR(p
, "VkPhysicalDeviceRayTracingPipelineFeaturesKHR", *props
);
6995 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
) {
6996 const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR
* props
= (const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR
*)structure
;
6997 DumpVkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(p
, "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR", *props
);
7000 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
) {
7001 const VkPhysicalDeviceRobustness2FeaturesEXT
* props
= (const VkPhysicalDeviceRobustness2FeaturesEXT
*)structure
;
7002 DumpVkPhysicalDeviceRobustness2FeaturesEXT(p
, "VkPhysicalDeviceRobustness2FeaturesEXT", *props
);
7005 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
) {
7006 const VkPhysicalDeviceSamplerYcbcrConversionFeatures
* props
= (const VkPhysicalDeviceSamplerYcbcrConversionFeatures
*)structure
;
7007 DumpVkPhysicalDeviceSamplerYcbcrConversionFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceSamplerYcbcrConversionFeatures":"VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR", *props
);
7010 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
) {
7011 const VkPhysicalDeviceScalarBlockLayoutFeatures
* props
= (const VkPhysicalDeviceScalarBlockLayoutFeatures
*)structure
;
7012 DumpVkPhysicalDeviceScalarBlockLayoutFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceScalarBlockLayoutFeatures":"VkPhysicalDeviceScalarBlockLayoutFeaturesEXT", *props
);
7015 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
) {
7016 const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
* props
= (const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
*)structure
;
7017 DumpVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures":"VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR", *props
);
7020 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
) {
7021 const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
* props
= (const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
*)structure
;
7022 DumpVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(p
, "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT", *props
);
7025 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
) {
7026 const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
* props
= (const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
*)structure
;
7027 DumpVkPhysicalDeviceShaderAtomicFloatFeaturesEXT(p
, "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT", *props
);
7030 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
) {
7031 const VkPhysicalDeviceShaderAtomicInt64Features
* props
= (const VkPhysicalDeviceShaderAtomicInt64Features
*)structure
;
7032 DumpVkPhysicalDeviceShaderAtomicInt64Features(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceShaderAtomicInt64Features":"VkPhysicalDeviceShaderAtomicInt64FeaturesKHR", *props
);
7035 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
) {
7036 const VkPhysicalDeviceShaderClockFeaturesKHR
* props
= (const VkPhysicalDeviceShaderClockFeaturesKHR
*)structure
;
7037 DumpVkPhysicalDeviceShaderClockFeaturesKHR(p
, "VkPhysicalDeviceShaderClockFeaturesKHR", *props
);
7040 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
) {
7041 const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
* props
= (const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
*)structure
;
7042 DumpVkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures":"VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT", *props
);
7045 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
) {
7046 const VkPhysicalDeviceShaderDrawParametersFeatures
* props
= (const VkPhysicalDeviceShaderDrawParametersFeatures
*)structure
;
7047 DumpVkPhysicalDeviceShaderDrawParametersFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceShaderDrawParametersFeatures":"VkPhysicalDeviceShaderDrawParameterFeatures", *props
);
7050 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES
) {
7051 const VkPhysicalDeviceShaderExpectAssumeFeatures
* props
= (const VkPhysicalDeviceShaderExpectAssumeFeatures
*)structure
;
7052 DumpVkPhysicalDeviceShaderExpectAssumeFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceShaderExpectAssumeFeatures":"VkPhysicalDeviceShaderExpectAssumeFeaturesKHR", *props
);
7055 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
) {
7056 const VkPhysicalDeviceShaderFloat16Int8Features
* props
= (const VkPhysicalDeviceShaderFloat16Int8Features
*)structure
;
7057 DumpVkPhysicalDeviceShaderFloat16Int8Features(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceShaderFloat16Int8Features":"VkPhysicalDeviceFloat16Int8FeaturesKHR", *props
);
7060 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES
) {
7061 const VkPhysicalDeviceShaderFloatControls2Features
* props
= (const VkPhysicalDeviceShaderFloatControls2Features
*)structure
;
7062 DumpVkPhysicalDeviceShaderFloatControls2Features(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceShaderFloatControls2Features":"VkPhysicalDeviceShaderFloatControls2FeaturesKHR", *props
);
7065 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
) {
7066 const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
* props
= (const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
*)structure
;
7067 DumpVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(p
, "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT", *props
);
7070 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
) {
7071 const VkPhysicalDeviceShaderIntegerDotProductFeatures
* props
= (const VkPhysicalDeviceShaderIntegerDotProductFeatures
*)structure
;
7072 DumpVkPhysicalDeviceShaderIntegerDotProductFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceShaderIntegerDotProductFeatures":"VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR", *props
);
7075 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
) {
7076 const VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
* props
= (const VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
*)structure
;
7077 DumpVkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR(p
, "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR", *props
);
7080 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
) {
7081 const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
* props
= (const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
*)structure
;
7082 DumpVkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(p
, "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT", *props
);
7085 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
) {
7086 const VkPhysicalDeviceShaderObjectFeaturesEXT
* props
= (const VkPhysicalDeviceShaderObjectFeaturesEXT
*)structure
;
7087 DumpVkPhysicalDeviceShaderObjectFeaturesEXT(p
, "VkPhysicalDeviceShaderObjectFeaturesEXT", *props
);
7090 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
) {
7091 const VkPhysicalDeviceShaderQuadControlFeaturesKHR
* props
= (const VkPhysicalDeviceShaderQuadControlFeaturesKHR
*)structure
;
7092 DumpVkPhysicalDeviceShaderQuadControlFeaturesKHR(p
, "VkPhysicalDeviceShaderQuadControlFeaturesKHR", *props
);
7095 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
) {
7096 const VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
* props
= (const VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
*)structure
;
7097 DumpVkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR(p
, "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", *props
);
7100 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
) {
7101 const VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT
* props
= (const VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT
*)structure
;
7102 DumpVkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT(p
, "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT", *props
);
7105 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
) {
7106 const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
* props
= (const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
*)structure
;
7107 DumpVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures":"VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR", *props
);
7110 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES
) {
7111 const VkPhysicalDeviceShaderSubgroupRotateFeatures
* props
= (const VkPhysicalDeviceShaderSubgroupRotateFeatures
*)structure
;
7112 DumpVkPhysicalDeviceShaderSubgroupRotateFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceShaderSubgroupRotateFeatures":"VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR", *props
);
7115 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
) {
7116 const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
* props
= (const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
*)structure
;
7117 DumpVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(p
, "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", *props
);
7120 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
) {
7121 const VkPhysicalDeviceShaderTerminateInvocationFeatures
* props
= (const VkPhysicalDeviceShaderTerminateInvocationFeatures
*)structure
;
7122 DumpVkPhysicalDeviceShaderTerminateInvocationFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceShaderTerminateInvocationFeatures":"VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR", *props
);
7125 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
) {
7126 const VkPhysicalDeviceShaderTileImageFeaturesEXT
* props
= (const VkPhysicalDeviceShaderTileImageFeaturesEXT
*)structure
;
7127 DumpVkPhysicalDeviceShaderTileImageFeaturesEXT(p
, "VkPhysicalDeviceShaderTileImageFeaturesEXT", *props
);
7130 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
) {
7131 const VkPhysicalDeviceSubgroupSizeControlFeatures
* props
= (const VkPhysicalDeviceSubgroupSizeControlFeatures
*)structure
;
7132 DumpVkPhysicalDeviceSubgroupSizeControlFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceSubgroupSizeControlFeatures":"VkPhysicalDeviceSubgroupSizeControlFeaturesEXT", *props
);
7135 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
) {
7136 const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
* props
= (const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
*)structure
;
7137 DumpVkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(p
, "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT", *props
);
7140 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
) {
7141 const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT
* props
= (const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT
*)structure
;
7142 DumpVkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(p
, "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT", *props
);
7145 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
) {
7146 const VkPhysicalDeviceSynchronization2Features
* props
= (const VkPhysicalDeviceSynchronization2Features
*)structure
;
7147 DumpVkPhysicalDeviceSynchronization2Features(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceSynchronization2Features":"VkPhysicalDeviceSynchronization2FeaturesKHR", *props
);
7150 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
) {
7151 const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
* props
= (const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
*)structure
;
7152 DumpVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(p
, "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT", *props
);
7155 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
) {
7156 const VkPhysicalDeviceTextureCompressionASTCHDRFeatures
* props
= (const VkPhysicalDeviceTextureCompressionASTCHDRFeatures
*)structure
;
7157 DumpVkPhysicalDeviceTextureCompressionASTCHDRFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceTextureCompressionASTCHDRFeatures":"VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT", *props
);
7160 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
) {
7161 const VkPhysicalDeviceTimelineSemaphoreFeatures
* props
= (const VkPhysicalDeviceTimelineSemaphoreFeatures
*)structure
;
7162 DumpVkPhysicalDeviceTimelineSemaphoreFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceTimelineSemaphoreFeatures":"VkPhysicalDeviceTimelineSemaphoreFeaturesKHR", *props
);
7165 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
) {
7166 const VkPhysicalDeviceTransformFeedbackFeaturesEXT
* props
= (const VkPhysicalDeviceTransformFeedbackFeaturesEXT
*)structure
;
7167 DumpVkPhysicalDeviceTransformFeedbackFeaturesEXT(p
, "VkPhysicalDeviceTransformFeedbackFeaturesEXT", *props
);
7170 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
) {
7171 const VkPhysicalDeviceUniformBufferStandardLayoutFeatures
* props
= (const VkPhysicalDeviceUniformBufferStandardLayoutFeatures
*)structure
;
7172 DumpVkPhysicalDeviceUniformBufferStandardLayoutFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceUniformBufferStandardLayoutFeatures":"VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR", *props
);
7175 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
) {
7176 const VkPhysicalDeviceVariablePointersFeatures
* props
= (const VkPhysicalDeviceVariablePointersFeatures
*)structure
;
7177 DumpVkPhysicalDeviceVariablePointersFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceVariablePointersFeatures":"VkPhysicalDeviceVariablePointersFeaturesKHR", *props
);
7180 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES
) {
7181 const VkPhysicalDeviceVertexAttributeDivisorFeatures
* props
= (const VkPhysicalDeviceVertexAttributeDivisorFeatures
*)structure
;
7182 DumpVkPhysicalDeviceVertexAttributeDivisorFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkPhysicalDeviceVertexAttributeDivisorFeatures":"VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR", *props
);
7185 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT
) {
7186 const VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT
* props
= (const VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT
*)structure
;
7187 DumpVkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT(p
, "VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT", *props
);
7190 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
) {
7191 const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
* props
= (const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
*)structure
;
7192 DumpVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(p
, "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT", *props
);
7195 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR
) {
7196 const VkPhysicalDeviceVideoEncodeAV1FeaturesKHR
* props
= (const VkPhysicalDeviceVideoEncodeAV1FeaturesKHR
*)structure
;
7197 DumpVkPhysicalDeviceVideoEncodeAV1FeaturesKHR(p
, "VkPhysicalDeviceVideoEncodeAV1FeaturesKHR", *props
);
7200 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR
) {
7201 const VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR
* props
= (const VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR
*)structure
;
7202 DumpVkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR(p
, "VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR", *props
);
7205 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR
) {
7206 const VkPhysicalDeviceVideoMaintenance1FeaturesKHR
* props
= (const VkPhysicalDeviceVideoMaintenance1FeaturesKHR
*)structure
;
7207 DumpVkPhysicalDeviceVideoMaintenance1FeaturesKHR(p
, "VkPhysicalDeviceVideoMaintenance1FeaturesKHR", *props
);
7210 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR
) {
7211 const VkPhysicalDeviceVideoMaintenance2FeaturesKHR
* props
= (const VkPhysicalDeviceVideoMaintenance2FeaturesKHR
*)structure
;
7212 DumpVkPhysicalDeviceVideoMaintenance2FeaturesKHR(p
, "VkPhysicalDeviceVideoMaintenance2FeaturesKHR", *props
);
7215 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
) {
7216 const VkPhysicalDeviceVulkan11Features
* props
= (const VkPhysicalDeviceVulkan11Features
*)structure
;
7217 DumpVkPhysicalDeviceVulkan11Features(p
, "VkPhysicalDeviceVulkan11Features", *props
);
7220 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
) {
7221 const VkPhysicalDeviceVulkan12Features
* props
= (const VkPhysicalDeviceVulkan12Features
*)structure
;
7222 DumpVkPhysicalDeviceVulkan12Features(p
, "VkPhysicalDeviceVulkan12Features", *props
);
7225 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
) {
7226 const VkPhysicalDeviceVulkan13Features
* props
= (const VkPhysicalDeviceVulkan13Features
*)structure
;
7227 DumpVkPhysicalDeviceVulkan13Features(p
, "VkPhysicalDeviceVulkan13Features", *props
);
7230 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES
) {
7231 const VkPhysicalDeviceVulkan14Features
* props
= (const VkPhysicalDeviceVulkan14Features
*)structure
;
7232 DumpVkPhysicalDeviceVulkan14Features(p
, "VkPhysicalDeviceVulkan14Features", *props
);
7235 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
) {
7236 const VkPhysicalDeviceVulkanMemoryModelFeatures
* props
= (const VkPhysicalDeviceVulkanMemoryModelFeatures
*)structure
;
7237 DumpVkPhysicalDeviceVulkanMemoryModelFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceVulkanMemoryModelFeatures":"VkPhysicalDeviceVulkanMemoryModelFeaturesKHR", *props
);
7240 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
) {
7241 const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
* props
= (const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
*)structure
;
7242 DumpVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(p
, "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", *props
);
7245 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
) {
7246 const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
* props
= (const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
*)structure
;
7247 DumpVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(p
, "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", *props
);
7250 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
) {
7251 const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
* props
= (const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
*)structure
;
7252 DumpVkPhysicalDeviceYcbcrImageArraysFeaturesEXT(p
, "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT", *props
);
7255 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
) {
7256 const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
* props
= (const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
*)structure
;
7257 DumpVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures":"VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR", *props
);
7260 place
= structure
->pNext
;
7264 bool prepare_phys_device_features2_twocall_chain_vectors(std::unique_ptr
<phys_device_features2_chain
>& chain
) {
7268 struct surface_capabilities2_chain
{
7269 surface_capabilities2_chain() = default;
7270 surface_capabilities2_chain(const surface_capabilities2_chain
&) = delete;
7271 surface_capabilities2_chain
& operator=(const surface_capabilities2_chain
&) = delete;
7272 surface_capabilities2_chain(surface_capabilities2_chain
&&) = delete;
7273 surface_capabilities2_chain
& operator=(surface_capabilities2_chain
&&) = delete;
7274 void* start_of_chain
= nullptr;
7275 VkSharedPresentSurfaceCapabilitiesKHR SharedPresentSurfaceCapabilitiesKHR
{};
7276 #ifdef VK_USE_PLATFORM_WIN32_KHR
7277 VkSurfaceCapabilitiesFullScreenExclusiveEXT SurfaceCapabilitiesFullScreenExclusiveEXT
{};
7278 #endif // VK_USE_PLATFORM_WIN32_KHR
7279 VkSurfaceProtectedCapabilitiesKHR SurfaceProtectedCapabilitiesKHR
{};
7280 void initialize_chain(AppInstance
&inst
, AppGpu
&gpu
) noexcept
{
7281 SharedPresentSurfaceCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
;
7282 #ifdef VK_USE_PLATFORM_WIN32_KHR
7283 SurfaceCapabilitiesFullScreenExclusiveEXT
.sType
= VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
;
7284 #endif // VK_USE_PLATFORM_WIN32_KHR
7285 SurfaceProtectedCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
;
7286 std::vector
<VkBaseOutStructure
*> chain_members
{};
7287 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME
))
7288 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&SharedPresentSurfaceCapabilitiesKHR
));
7289 #ifdef VK_USE_PLATFORM_WIN32_KHR
7290 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME
))
7291 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&SurfaceCapabilitiesFullScreenExclusiveEXT
));
7292 #endif // VK_USE_PLATFORM_WIN32_KHR
7293 if (inst
.CheckExtensionEnabled(VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME
))
7294 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&SurfaceProtectedCapabilitiesKHR
));
7296 if (!chain_members
.empty()) {
7297 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
7298 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
7300 start_of_chain
= chain_members
[0];
7304 void setup_surface_capabilities2_chain(VkSurfaceCapabilities2KHR
& start
, std::unique_ptr
<surface_capabilities2_chain
>& chain
, AppInstance
&inst
,AppGpu
&gpu
){
7305 chain
= std::unique_ptr
<surface_capabilities2_chain
>(new surface_capabilities2_chain());
7306 chain
->initialize_chain(inst
,gpu
);
7307 start
.pNext
= chain
->start_of_chain
;
7310 void chain_iterator_surface_capabilities2(Printer
&p
, AppInstance
&inst
, AppGpu
&gpu
, const void * place
) {
7312 const VkBaseOutStructure
*structure
= (const VkBaseOutStructure
*)place
;
7314 if (structure
->sType
== VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
) {
7315 const VkSharedPresentSurfaceCapabilitiesKHR
* props
= (const VkSharedPresentSurfaceCapabilitiesKHR
*)structure
;
7316 DumpVkSharedPresentSurfaceCapabilitiesKHR(p
, "VkSharedPresentSurfaceCapabilitiesKHR", *props
);
7319 #ifdef VK_USE_PLATFORM_WIN32_KHR
7320 if (structure
->sType
== VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
) {
7321 const VkSurfaceCapabilitiesFullScreenExclusiveEXT
* props
= (const VkSurfaceCapabilitiesFullScreenExclusiveEXT
*)structure
;
7322 DumpVkSurfaceCapabilitiesFullScreenExclusiveEXT(p
, "VkSurfaceCapabilitiesFullScreenExclusiveEXT", *props
);
7325 #endif // VK_USE_PLATFORM_WIN32_KHR
7326 if (structure
->sType
== VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
) {
7327 const VkSurfaceProtectedCapabilitiesKHR
* props
= (const VkSurfaceProtectedCapabilitiesKHR
*)structure
;
7328 DumpVkSurfaceProtectedCapabilitiesKHR(p
, "VkSurfaceProtectedCapabilitiesKHR", *props
);
7331 place
= structure
->pNext
;
7335 bool prepare_surface_capabilities2_twocall_chain_vectors(std::unique_ptr
<surface_capabilities2_chain
>& chain
) {
7339 struct format_properties2_chain
{
7340 format_properties2_chain() = default;
7341 format_properties2_chain(const format_properties2_chain
&) = delete;
7342 format_properties2_chain
& operator=(const format_properties2_chain
&) = delete;
7343 format_properties2_chain(format_properties2_chain
&&) = delete;
7344 format_properties2_chain
& operator=(format_properties2_chain
&&) = delete;
7345 void* start_of_chain
= nullptr;
7346 VkFormatProperties3 FormatProperties3
{};
7347 VkSubpassResolvePerformanceQueryEXT SubpassResolvePerformanceQueryEXT
{};
7348 void initialize_chain(AppGpu
&gpu
) noexcept
{
7349 FormatProperties3
.sType
= VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
;
7350 SubpassResolvePerformanceQueryEXT
.sType
= VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
;
7351 std::vector
<VkBaseOutStructure
*> chain_members
{};
7352 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME
))
7353 && (gpu
.api_version
< VK_API_VERSION_1_3
))
7354 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&FormatProperties3
));
7355 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME
))
7356 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&SubpassResolvePerformanceQueryEXT
));
7358 if (!chain_members
.empty()) {
7359 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
7360 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
7362 start_of_chain
= chain_members
[0];
7366 void setup_format_properties2_chain(VkFormatProperties2
& start
, std::unique_ptr
<format_properties2_chain
>& chain
, AppGpu
&gpu
){
7367 chain
= std::unique_ptr
<format_properties2_chain
>(new format_properties2_chain());
7368 chain
->initialize_chain(gpu
);
7369 start
.pNext
= chain
->start_of_chain
;
7372 void chain_iterator_format_properties2(Printer
&p
, AppGpu
&gpu
, const void * place
) {
7374 const VkBaseOutStructure
*structure
= (const VkBaseOutStructure
*)place
;
7376 if (structure
->sType
== VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
) {
7377 const VkFormatProperties3
* props
= (const VkFormatProperties3
*)structure
;
7378 DumpVkFormatProperties3(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkFormatProperties3":"VkFormatProperties3KHR", *props
);
7381 if (structure
->sType
== VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
) {
7382 const VkSubpassResolvePerformanceQueryEXT
* props
= (const VkSubpassResolvePerformanceQueryEXT
*)structure
;
7383 DumpVkSubpassResolvePerformanceQueryEXT(p
, "VkSubpassResolvePerformanceQueryEXT", *props
);
7386 place
= structure
->pNext
;
7390 bool prepare_format_properties2_twocall_chain_vectors(std::unique_ptr
<format_properties2_chain
>& chain
) {
7394 struct queue_properties2_chain
{
7395 queue_properties2_chain() = default;
7396 queue_properties2_chain(const queue_properties2_chain
&) = delete;
7397 queue_properties2_chain
& operator=(const queue_properties2_chain
&) = delete;
7398 queue_properties2_chain(queue_properties2_chain
&&) = delete;
7399 queue_properties2_chain
& operator=(queue_properties2_chain
&&) = delete;
7400 void* start_of_chain
= nullptr;
7401 VkQueueFamilyGlobalPriorityProperties QueueFamilyGlobalPriorityProperties
{};
7402 VkQueueFamilyQueryResultStatusPropertiesKHR QueueFamilyQueryResultStatusPropertiesKHR
{};
7403 VkQueueFamilyVideoPropertiesKHR QueueFamilyVideoPropertiesKHR
{};
7404 void initialize_chain(AppGpu
&gpu
) noexcept
{
7405 QueueFamilyGlobalPriorityProperties
.sType
= VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES
;
7406 QueueFamilyQueryResultStatusPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
;
7407 QueueFamilyVideoPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
;
7408 std::vector
<VkBaseOutStructure
*> chain_members
{};
7409 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME
)
7410 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME
))
7411 && (gpu
.api_version
< VK_API_VERSION_1_4
))
7412 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&QueueFamilyGlobalPriorityProperties
));
7413 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_QUEUE_EXTENSION_NAME
))
7414 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&QueueFamilyQueryResultStatusPropertiesKHR
));
7415 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_QUEUE_EXTENSION_NAME
))
7416 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&QueueFamilyVideoPropertiesKHR
));
7418 if (!chain_members
.empty()) {
7419 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
7420 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
7422 start_of_chain
= chain_members
[0];
7426 void setup_queue_properties2_chain(VkQueueFamilyProperties2
& start
, std::unique_ptr
<queue_properties2_chain
>& chain
, AppGpu
&gpu
){
7427 chain
= std::unique_ptr
<queue_properties2_chain
>(new queue_properties2_chain());
7428 chain
->initialize_chain(gpu
);
7429 start
.pNext
= chain
->start_of_chain
;
7432 void chain_iterator_queue_properties2(Printer
&p
, AppGpu
&gpu
, const void * place
) {
7434 const VkBaseOutStructure
*structure
= (const VkBaseOutStructure
*)place
;
7436 if (structure
->sType
== VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES
) {
7437 const VkQueueFamilyGlobalPriorityProperties
* props
= (const VkQueueFamilyGlobalPriorityProperties
*)structure
;
7438 DumpVkQueueFamilyGlobalPriorityProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_4
?"VkQueueFamilyGlobalPriorityProperties":"VkQueueFamilyGlobalPriorityPropertiesEXT", *props
);
7441 if (structure
->sType
== VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
) {
7442 const VkQueueFamilyQueryResultStatusPropertiesKHR
* props
= (const VkQueueFamilyQueryResultStatusPropertiesKHR
*)structure
;
7443 DumpVkQueueFamilyQueryResultStatusPropertiesKHR(p
, "VkQueueFamilyQueryResultStatusPropertiesKHR", *props
);
7446 if (structure
->sType
== VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
) {
7447 const VkQueueFamilyVideoPropertiesKHR
* props
= (const VkQueueFamilyVideoPropertiesKHR
*)structure
;
7448 DumpVkQueueFamilyVideoPropertiesKHR(p
, "VkQueueFamilyVideoPropertiesKHR", *props
);
7451 place
= structure
->pNext
;
7455 bool prepare_queue_properties2_twocall_chain_vectors(std::unique_ptr
<queue_properties2_chain
>& chain
) {
7459 struct video_profile_info_chain
{
7460 video_profile_info_chain() = default;
7461 video_profile_info_chain(const video_profile_info_chain
&) = delete;
7462 video_profile_info_chain
& operator=(const video_profile_info_chain
&) = delete;
7463 video_profile_info_chain(video_profile_info_chain
&&) = delete;
7464 video_profile_info_chain
& operator=(video_profile_info_chain
&&) = delete;
7465 void* start_of_chain
= nullptr;
7466 VkVideoDecodeAV1ProfileInfoKHR VideoDecodeAV1ProfileInfoKHR
{};
7467 VkVideoDecodeH264ProfileInfoKHR VideoDecodeH264ProfileInfoKHR
{};
7468 VkVideoDecodeH265ProfileInfoKHR VideoDecodeH265ProfileInfoKHR
{};
7469 VkVideoDecodeUsageInfoKHR VideoDecodeUsageInfoKHR
{};
7470 VkVideoEncodeAV1ProfileInfoKHR VideoEncodeAV1ProfileInfoKHR
{};
7471 VkVideoEncodeH264ProfileInfoKHR VideoEncodeH264ProfileInfoKHR
{};
7472 VkVideoEncodeH265ProfileInfoKHR VideoEncodeH265ProfileInfoKHR
{};
7473 VkVideoEncodeUsageInfoKHR VideoEncodeUsageInfoKHR
{};
7474 void initialize_chain(AppGpu
&gpu
) noexcept
{
7475 VideoDecodeAV1ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR
;
7476 VideoDecodeH264ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR
;
7477 VideoDecodeH265ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR
;
7478 VideoDecodeUsageInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR
;
7479 VideoEncodeAV1ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR
;
7480 VideoEncodeH264ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR
;
7481 VideoEncodeH265ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR
;
7482 VideoEncodeUsageInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR
;
7483 std::vector
<VkBaseOutStructure
*> chain_members
{};
7484 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME
))
7485 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoDecodeAV1ProfileInfoKHR
));
7486 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME
))
7487 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoDecodeH264ProfileInfoKHR
));
7488 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME
))
7489 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoDecodeH265ProfileInfoKHR
));
7490 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME
))
7491 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoDecodeUsageInfoKHR
));
7492 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME
))
7493 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeAV1ProfileInfoKHR
));
7494 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME
))
7495 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeH264ProfileInfoKHR
));
7496 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME
))
7497 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeH265ProfileInfoKHR
));
7498 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
))
7499 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeUsageInfoKHR
));
7501 if (!chain_members
.empty()) {
7502 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
7503 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
7505 start_of_chain
= chain_members
[0];
7509 void setup_video_profile_info_chain(VkVideoProfileInfoKHR
& start
, std::unique_ptr
<video_profile_info_chain
>& chain
, AppGpu
&gpu
){
7510 chain
= std::unique_ptr
<video_profile_info_chain
>(new video_profile_info_chain());
7511 chain
->initialize_chain(gpu
);
7512 start
.pNext
= chain
->start_of_chain
;
7515 void chain_iterator_video_profile_info(Printer
&p
, AppGpu
&gpu
, const void * place
) {
7517 const VkBaseOutStructure
*structure
= (const VkBaseOutStructure
*)place
;
7519 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR
) {
7520 const VkVideoDecodeAV1ProfileInfoKHR
* props
= (const VkVideoDecodeAV1ProfileInfoKHR
*)structure
;
7521 DumpVkVideoDecodeAV1ProfileInfoKHR(p
, "VkVideoDecodeAV1ProfileInfoKHR", *props
);
7524 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR
) {
7525 const VkVideoDecodeH264ProfileInfoKHR
* props
= (const VkVideoDecodeH264ProfileInfoKHR
*)structure
;
7526 DumpVkVideoDecodeH264ProfileInfoKHR(p
, "VkVideoDecodeH264ProfileInfoKHR", *props
);
7529 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR
) {
7530 const VkVideoDecodeH265ProfileInfoKHR
* props
= (const VkVideoDecodeH265ProfileInfoKHR
*)structure
;
7531 DumpVkVideoDecodeH265ProfileInfoKHR(p
, "VkVideoDecodeH265ProfileInfoKHR", *props
);
7534 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR
) {
7535 const VkVideoDecodeUsageInfoKHR
* props
= (const VkVideoDecodeUsageInfoKHR
*)structure
;
7536 DumpVkVideoDecodeUsageInfoKHR(p
, "VkVideoDecodeUsageInfoKHR", *props
);
7539 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR
) {
7540 const VkVideoEncodeAV1ProfileInfoKHR
* props
= (const VkVideoEncodeAV1ProfileInfoKHR
*)structure
;
7541 DumpVkVideoEncodeAV1ProfileInfoKHR(p
, "VkVideoEncodeAV1ProfileInfoKHR", *props
);
7544 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR
) {
7545 const VkVideoEncodeH264ProfileInfoKHR
* props
= (const VkVideoEncodeH264ProfileInfoKHR
*)structure
;
7546 DumpVkVideoEncodeH264ProfileInfoKHR(p
, "VkVideoEncodeH264ProfileInfoKHR", *props
);
7549 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR
) {
7550 const VkVideoEncodeH265ProfileInfoKHR
* props
= (const VkVideoEncodeH265ProfileInfoKHR
*)structure
;
7551 DumpVkVideoEncodeH265ProfileInfoKHR(p
, "VkVideoEncodeH265ProfileInfoKHR", *props
);
7554 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR
) {
7555 const VkVideoEncodeUsageInfoKHR
* props
= (const VkVideoEncodeUsageInfoKHR
*)structure
;
7556 DumpVkVideoEncodeUsageInfoKHR(p
, "VkVideoEncodeUsageInfoKHR", *props
);
7559 place
= structure
->pNext
;
7563 bool prepare_video_profile_info_twocall_chain_vectors(std::unique_ptr
<video_profile_info_chain
>& chain
) {
7567 struct video_capabilities_chain
{
7568 video_capabilities_chain() = default;
7569 video_capabilities_chain(const video_capabilities_chain
&) = delete;
7570 video_capabilities_chain
& operator=(const video_capabilities_chain
&) = delete;
7571 video_capabilities_chain(video_capabilities_chain
&&) = delete;
7572 video_capabilities_chain
& operator=(video_capabilities_chain
&&) = delete;
7573 void* start_of_chain
= nullptr;
7574 VkVideoDecodeAV1CapabilitiesKHR VideoDecodeAV1CapabilitiesKHR
{};
7575 VkVideoDecodeCapabilitiesKHR VideoDecodeCapabilitiesKHR
{};
7576 VkVideoDecodeH264CapabilitiesKHR VideoDecodeH264CapabilitiesKHR
{};
7577 VkVideoDecodeH265CapabilitiesKHR VideoDecodeH265CapabilitiesKHR
{};
7578 VkVideoEncodeAV1CapabilitiesKHR VideoEncodeAV1CapabilitiesKHR
{};
7579 VkVideoEncodeAV1QuantizationMapCapabilitiesKHR VideoEncodeAV1QuantizationMapCapabilitiesKHR
{};
7580 VkVideoEncodeCapabilitiesKHR VideoEncodeCapabilitiesKHR
{};
7581 VkVideoEncodeH264CapabilitiesKHR VideoEncodeH264CapabilitiesKHR
{};
7582 VkVideoEncodeH264QuantizationMapCapabilitiesKHR VideoEncodeH264QuantizationMapCapabilitiesKHR
{};
7583 VkVideoEncodeH265CapabilitiesKHR VideoEncodeH265CapabilitiesKHR
{};
7584 VkVideoEncodeH265QuantizationMapCapabilitiesKHR VideoEncodeH265QuantizationMapCapabilitiesKHR
{};
7585 VkVideoEncodeQuantizationMapCapabilitiesKHR VideoEncodeQuantizationMapCapabilitiesKHR
{};
7586 void initialize_chain(AppGpu
&gpu
) noexcept
{
7587 VideoDecodeAV1CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR
;
7588 VideoDecodeCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR
;
7589 VideoDecodeH264CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR
;
7590 VideoDecodeH265CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR
;
7591 VideoEncodeAV1CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR
;
7592 VideoEncodeAV1QuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR
;
7593 VideoEncodeCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
;
7594 VideoEncodeH264CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR
;
7595 VideoEncodeH264QuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR
;
7596 VideoEncodeH265CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR
;
7597 VideoEncodeH265QuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR
;
7598 VideoEncodeQuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR
;
7599 std::vector
<VkBaseOutStructure
*> chain_members
{};
7600 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME
))
7601 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoDecodeAV1CapabilitiesKHR
));
7602 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME
))
7603 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoDecodeCapabilitiesKHR
));
7604 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME
))
7605 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoDecodeH264CapabilitiesKHR
));
7606 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME
))
7607 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoDecodeH265CapabilitiesKHR
));
7608 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME
))
7609 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeAV1CapabilitiesKHR
));
7610 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
))
7611 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeAV1QuantizationMapCapabilitiesKHR
));
7612 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
))
7613 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeCapabilitiesKHR
));
7614 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME
))
7615 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeH264CapabilitiesKHR
));
7616 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
))
7617 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeH264QuantizationMapCapabilitiesKHR
));
7618 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME
))
7619 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeH265CapabilitiesKHR
));
7620 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
))
7621 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeH265QuantizationMapCapabilitiesKHR
));
7622 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
))
7623 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoEncodeQuantizationMapCapabilitiesKHR
));
7625 if (!chain_members
.empty()) {
7626 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
7627 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
7629 start_of_chain
= chain_members
[0];
7633 void setup_video_capabilities_chain(VkVideoCapabilitiesKHR
& start
, std::unique_ptr
<video_capabilities_chain
>& chain
, AppGpu
&gpu
){
7634 chain
= std::unique_ptr
<video_capabilities_chain
>(new video_capabilities_chain());
7635 chain
->initialize_chain(gpu
);
7636 start
.pNext
= chain
->start_of_chain
;
7639 void chain_iterator_video_capabilities(Printer
&p
, AppGpu
&gpu
, const void * place
) {
7641 const VkBaseOutStructure
*structure
= (const VkBaseOutStructure
*)place
;
7643 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR
) {
7644 const VkVideoDecodeAV1CapabilitiesKHR
* props
= (const VkVideoDecodeAV1CapabilitiesKHR
*)structure
;
7645 DumpVkVideoDecodeAV1CapabilitiesKHR(p
, "VkVideoDecodeAV1CapabilitiesKHR", *props
);
7648 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR
) {
7649 const VkVideoDecodeCapabilitiesKHR
* props
= (const VkVideoDecodeCapabilitiesKHR
*)structure
;
7650 DumpVkVideoDecodeCapabilitiesKHR(p
, "VkVideoDecodeCapabilitiesKHR", *props
);
7653 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR
) {
7654 const VkVideoDecodeH264CapabilitiesKHR
* props
= (const VkVideoDecodeH264CapabilitiesKHR
*)structure
;
7655 DumpVkVideoDecodeH264CapabilitiesKHR(p
, "VkVideoDecodeH264CapabilitiesKHR", *props
);
7658 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR
) {
7659 const VkVideoDecodeH265CapabilitiesKHR
* props
= (const VkVideoDecodeH265CapabilitiesKHR
*)structure
;
7660 DumpVkVideoDecodeH265CapabilitiesKHR(p
, "VkVideoDecodeH265CapabilitiesKHR", *props
);
7663 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR
) {
7664 const VkVideoEncodeAV1CapabilitiesKHR
* props
= (const VkVideoEncodeAV1CapabilitiesKHR
*)structure
;
7665 DumpVkVideoEncodeAV1CapabilitiesKHR(p
, "VkVideoEncodeAV1CapabilitiesKHR", *props
);
7668 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR
) {
7669 const VkVideoEncodeAV1QuantizationMapCapabilitiesKHR
* props
= (const VkVideoEncodeAV1QuantizationMapCapabilitiesKHR
*)structure
;
7670 DumpVkVideoEncodeAV1QuantizationMapCapabilitiesKHR(p
, "VkVideoEncodeAV1QuantizationMapCapabilitiesKHR", *props
);
7673 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
) {
7674 const VkVideoEncodeCapabilitiesKHR
* props
= (const VkVideoEncodeCapabilitiesKHR
*)structure
;
7675 DumpVkVideoEncodeCapabilitiesKHR(p
, "VkVideoEncodeCapabilitiesKHR", *props
);
7678 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR
) {
7679 const VkVideoEncodeH264CapabilitiesKHR
* props
= (const VkVideoEncodeH264CapabilitiesKHR
*)structure
;
7680 DumpVkVideoEncodeH264CapabilitiesKHR(p
, "VkVideoEncodeH264CapabilitiesKHR", *props
);
7683 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR
) {
7684 const VkVideoEncodeH264QuantizationMapCapabilitiesKHR
* props
= (const VkVideoEncodeH264QuantizationMapCapabilitiesKHR
*)structure
;
7685 DumpVkVideoEncodeH264QuantizationMapCapabilitiesKHR(p
, "VkVideoEncodeH264QuantizationMapCapabilitiesKHR", *props
);
7688 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR
) {
7689 const VkVideoEncodeH265CapabilitiesKHR
* props
= (const VkVideoEncodeH265CapabilitiesKHR
*)structure
;
7690 DumpVkVideoEncodeH265CapabilitiesKHR(p
, "VkVideoEncodeH265CapabilitiesKHR", *props
);
7693 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR
) {
7694 const VkVideoEncodeH265QuantizationMapCapabilitiesKHR
* props
= (const VkVideoEncodeH265QuantizationMapCapabilitiesKHR
*)structure
;
7695 DumpVkVideoEncodeH265QuantizationMapCapabilitiesKHR(p
, "VkVideoEncodeH265QuantizationMapCapabilitiesKHR", *props
);
7698 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR
) {
7699 const VkVideoEncodeQuantizationMapCapabilitiesKHR
* props
= (const VkVideoEncodeQuantizationMapCapabilitiesKHR
*)structure
;
7700 DumpVkVideoEncodeQuantizationMapCapabilitiesKHR(p
, "VkVideoEncodeQuantizationMapCapabilitiesKHR", *props
);
7703 place
= structure
->pNext
;
7707 bool prepare_video_capabilities_twocall_chain_vectors(std::unique_ptr
<video_capabilities_chain
>& chain
) {
7711 struct video_format_properties_chain
{
7712 video_format_properties_chain() = default;
7713 video_format_properties_chain(const video_format_properties_chain
&) = delete;
7714 video_format_properties_chain
& operator=(const video_format_properties_chain
&) = delete;
7715 video_format_properties_chain(video_format_properties_chain
&&) = delete;
7716 video_format_properties_chain
& operator=(video_format_properties_chain
&&) = delete;
7717 void* start_of_chain
= nullptr;
7718 VkVideoFormatAV1QuantizationMapPropertiesKHR VideoFormatAV1QuantizationMapPropertiesKHR
{};
7719 VkVideoFormatH265QuantizationMapPropertiesKHR VideoFormatH265QuantizationMapPropertiesKHR
{};
7720 VkVideoFormatQuantizationMapPropertiesKHR VideoFormatQuantizationMapPropertiesKHR
{};
7721 void initialize_chain(AppGpu
&gpu
) noexcept
{
7722 VideoFormatAV1QuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR
;
7723 VideoFormatH265QuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR
;
7724 VideoFormatQuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
;
7725 std::vector
<VkBaseOutStructure
*> chain_members
{};
7726 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
))
7727 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoFormatAV1QuantizationMapPropertiesKHR
));
7728 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
))
7729 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoFormatH265QuantizationMapPropertiesKHR
));
7730 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
))
7731 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&VideoFormatQuantizationMapPropertiesKHR
));
7733 if (!chain_members
.empty()) {
7734 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
7735 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
7737 start_of_chain
= chain_members
[0];
7741 void setup_video_format_properties_chain(VkVideoFormatPropertiesKHR
& start
, std::unique_ptr
<video_format_properties_chain
>& chain
, AppGpu
&gpu
){
7742 chain
= std::unique_ptr
<video_format_properties_chain
>(new video_format_properties_chain());
7743 chain
->initialize_chain(gpu
);
7744 start
.pNext
= chain
->start_of_chain
;
7747 void chain_iterator_video_format_properties(Printer
&p
, AppGpu
&gpu
, const void * place
) {
7749 const VkBaseOutStructure
*structure
= (const VkBaseOutStructure
*)place
;
7751 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR
) {
7752 const VkVideoFormatAV1QuantizationMapPropertiesKHR
* props
= (const VkVideoFormatAV1QuantizationMapPropertiesKHR
*)structure
;
7753 DumpVkVideoFormatAV1QuantizationMapPropertiesKHR(p
, "VkVideoFormatAV1QuantizationMapPropertiesKHR", *props
);
7756 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR
) {
7757 const VkVideoFormatH265QuantizationMapPropertiesKHR
* props
= (const VkVideoFormatH265QuantizationMapPropertiesKHR
*)structure
;
7758 DumpVkVideoFormatH265QuantizationMapPropertiesKHR(p
, "VkVideoFormatH265QuantizationMapPropertiesKHR", *props
);
7761 if (structure
->sType
== VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
) {
7762 const VkVideoFormatQuantizationMapPropertiesKHR
* props
= (const VkVideoFormatQuantizationMapPropertiesKHR
*)structure
;
7763 DumpVkVideoFormatQuantizationMapPropertiesKHR(p
, "VkVideoFormatQuantizationMapPropertiesKHR", *props
);
7766 place
= structure
->pNext
;
7770 bool prepare_video_format_properties_twocall_chain_vectors(std::unique_ptr
<video_format_properties_chain
>& chain
) {
7774 bool operator==(const VkExtent2D
& a
, const VkExtent2D b
);
7775 bool operator==(const VkSurfaceCapabilities2EXT
& a
, const VkSurfaceCapabilities2EXT b
);
7776 bool operator==(const VkSurfaceCapabilities2KHR
& a
, const VkSurfaceCapabilities2KHR b
);
7777 bool operator==(const VkSurfaceCapabilitiesKHR
& a
, const VkSurfaceCapabilitiesKHR b
);
7778 bool operator==(const VkSurfaceFormat2KHR
& a
, const VkSurfaceFormat2KHR b
);
7779 bool operator==(const VkSurfaceFormatKHR
& a
, const VkSurfaceFormatKHR b
);
7780 bool operator==(const VkExtent2D
& a
, const VkExtent2D b
) {
7781 return a
.width
== b
.width
7782 && a
.height
== b
.height
;
7784 bool operator==(const VkSurfaceCapabilities2EXT
& a
, const VkSurfaceCapabilities2EXT b
) {
7785 return a
.minImageCount
== b
.minImageCount
7786 && a
.maxImageCount
== b
.maxImageCount
7787 && a
.currentExtent
== b
.currentExtent
7788 && a
.minImageExtent
== b
.minImageExtent
7789 && a
.maxImageExtent
== b
.maxImageExtent
7790 && a
.maxImageArrayLayers
== b
.maxImageArrayLayers
7791 && a
.supportedTransforms
== b
.supportedTransforms
7792 && a
.currentTransform
== b
.currentTransform
7793 && a
.supportedCompositeAlpha
== b
.supportedCompositeAlpha
7794 && a
.supportedUsageFlags
== b
.supportedUsageFlags
7795 && a
.supportedSurfaceCounters
== b
.supportedSurfaceCounters
;
7797 bool operator==(const VkSurfaceCapabilities2KHR
& a
, const VkSurfaceCapabilities2KHR b
) {
7798 return a
.surfaceCapabilities
== b
.surfaceCapabilities
;
7800 bool operator==(const VkSurfaceCapabilitiesKHR
& a
, const VkSurfaceCapabilitiesKHR b
) {
7801 return a
.minImageCount
== b
.minImageCount
7802 && a
.maxImageCount
== b
.maxImageCount
7803 && a
.currentExtent
== b
.currentExtent
7804 && a
.minImageExtent
== b
.minImageExtent
7805 && a
.maxImageExtent
== b
.maxImageExtent
7806 && a
.maxImageArrayLayers
== b
.maxImageArrayLayers
7807 && a
.supportedTransforms
== b
.supportedTransforms
7808 && a
.currentTransform
== b
.currentTransform
7809 && a
.supportedCompositeAlpha
== b
.supportedCompositeAlpha
7810 && a
.supportedUsageFlags
== b
.supportedUsageFlags
;
7812 bool operator==(const VkSurfaceFormat2KHR
& a
, const VkSurfaceFormat2KHR b
) {
7813 return a
.surfaceFormat
== b
.surfaceFormat
;
7815 bool operator==(const VkSurfaceFormatKHR
& a
, const VkSurfaceFormatKHR b
) {
7816 return a
.format
== b
.format
7817 && a
.colorSpace
== b
.colorSpace
;
7819 std::ostream
&operator<<(std::ostream
&o
, VkExtent3D
&obj
) {
7820 return o
<< "(" << obj
.width
<< ',' << obj
.height
<< ',' << obj
.depth
<< ")";
7822 auto format_ranges
= std::array
{
7823 FormatRange
{0, nullptr, static_cast<VkFormat
>(0), static_cast<VkFormat
>(184)},
7824 FormatRange
{VK_API_VERSION_1_1
, nullptr, static_cast<VkFormat
>(1000156000), static_cast<VkFormat
>(1000156033)},
7825 FormatRange
{0, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME
, static_cast<VkFormat
>(1000156000), static_cast<VkFormat
>(1000156033)},
7826 FormatRange
{VK_API_VERSION_1_3
, nullptr, static_cast<VkFormat
>(1000330000), static_cast<VkFormat
>(1000330003)},
7827 FormatRange
{0, VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME
, static_cast<VkFormat
>(1000330000), static_cast<VkFormat
>(1000330003)},
7828 FormatRange
{VK_API_VERSION_1_3
, nullptr, static_cast<VkFormat
>(1000340000), static_cast<VkFormat
>(1000340001)},
7829 FormatRange
{0, VK_EXT_4444_FORMATS_EXTENSION_NAME
, static_cast<VkFormat
>(1000340000), static_cast<VkFormat
>(1000340001)},
7830 FormatRange
{VK_API_VERSION_1_3
, nullptr, static_cast<VkFormat
>(1000066000), static_cast<VkFormat
>(1000066013)},
7831 FormatRange
{0, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME
, static_cast<VkFormat
>(1000066000), static_cast<VkFormat
>(1000066013)},
7832 FormatRange
{VK_API_VERSION_1_4
, nullptr, static_cast<VkFormat
>(1000470000), static_cast<VkFormat
>(1000470001)},
7833 FormatRange
{0, VK_KHR_MAINTENANCE_5_EXTENSION_NAME
, static_cast<VkFormat
>(1000470000), static_cast<VkFormat
>(1000470001)},
7834 FormatRange
{0, VK_IMG_FORMAT_PVRTC_EXTENSION_NAME
, static_cast<VkFormat
>(1000054000), static_cast<VkFormat
>(1000054007)},
7835 FormatRange
{0, VK_NV_OPTICAL_FLOW_EXTENSION_NAME
, static_cast<VkFormat
>(1000464000), static_cast<VkFormat
>(1000464000)},
7838 bool is_video_format_same(const VkVideoFormatPropertiesKHR
&format_a
, const VkVideoFormatPropertiesKHR
&format_b
) {
7839 auto a
= reinterpret_cast<const VkBaseInStructure
*>(&format_a
);
7840 auto b
= reinterpret_cast<const VkBaseInStructure
*>(&format_b
);
7842 while (same
&& a
!= nullptr && b
!= nullptr) {
7843 if (a
->sType
!= b
->sType
) {
7844 // Structure type mismatch (extension structures are expected to be chained in the same order)
7848 case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR
:
7849 same
= same
&& memcmp(reinterpret_cast<const char*>(a
) + sizeof(VkBaseInStructure
),
7850 reinterpret_cast<const char*>(b
) + sizeof(VkBaseInStructure
),
7851 sizeof(VkVideoFormatPropertiesKHR
) - sizeof(VkBaseInStructure
)) == 0;
7853 case VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR
:
7854 same
= same
&& memcmp(reinterpret_cast<const char*>(a
) + sizeof(VkBaseInStructure
),
7855 reinterpret_cast<const char*>(b
) + sizeof(VkBaseInStructure
),
7856 sizeof(VkVideoFormatAV1QuantizationMapPropertiesKHR
) - sizeof(VkBaseInStructure
)) == 0;
7858 case VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR
:
7859 same
= same
&& memcmp(reinterpret_cast<const char*>(a
) + sizeof(VkBaseInStructure
),
7860 reinterpret_cast<const char*>(b
) + sizeof(VkBaseInStructure
),
7861 sizeof(VkVideoFormatH265QuantizationMapPropertiesKHR
) - sizeof(VkBaseInStructure
)) == 0;
7863 case VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
:
7864 same
= same
&& memcmp(reinterpret_cast<const char*>(a
) + sizeof(VkBaseInStructure
),
7865 reinterpret_cast<const char*>(b
) + sizeof(VkBaseInStructure
),
7866 sizeof(VkVideoFormatQuantizationMapPropertiesKHR
) - sizeof(VkBaseInStructure
)) == 0;
7869 // Unexpected structure type
7880 std::vector
<std::unique_ptr
<AppVideoProfile
>> enumerate_supported_video_profiles(AppGpu
&gpu
) {
7881 std::vector
<std::unique_ptr
<AppVideoProfile
>> result
{};
7883 struct ChromaSubsamplingInfo
{
7884 VkVideoChromaSubsamplingFlagsKHR value
;
7887 const std::vector
<ChromaSubsamplingInfo
> chroma_subsampling_list
= {
7888 {VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR
, "4:2:0"},
7889 {VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR
, "4:2:2"},
7890 {VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR
, "4:4:4"},
7891 {VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
, "monochrome"}
7894 struct BitDepthInfo
{
7895 VkVideoComponentBitDepthFlagsKHR value
;
7898 const std::vector
<BitDepthInfo
> bit_depth_list
= {
7899 {VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR
, "8"},
7900 {VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR
, "10"},
7901 {VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR
, "12"}
7904 auto find_caps_struct
= [](const VkVideoCapabilitiesKHR
&capabilities
, VkStructureType stype
) -> const VkBaseInStructure
* {
7905 auto p
= reinterpret_cast<const VkBaseInStructure
*>(&capabilities
);
7906 while (p
!= nullptr) {
7907 if (p
->sType
== stype
) {
7915 auto base_format
= []
7916 (const ChromaSubsamplingInfo
&chroma_subsampling
, const BitDepthInfo
&luma_bit_depth
, const BitDepthInfo
&chroma_bit_depth
) {
7917 std::string result
{};
7919 result
+= chroma_subsampling
.name
;
7921 result
+= luma_bit_depth
.name
;
7922 if (luma_bit_depth
.value
!= chroma_bit_depth
.value
) {
7924 result
+= chroma_bit_depth
.name
;
7930 auto add_profile
= [&](
7931 const std::string
&name
,
7932 const VkVideoProfileInfoKHR
&profile_info
,
7933 AppVideoProfile::CreateProfileInfoChainCb create_profile_info_chain
,
7934 AppVideoProfile::CreateCapabilitiesChainCb create_capabilities_chain
,
7935 const AppVideoProfile::CreateFormatPropertiesChainCbList
&create_format_properties_chain_list
,
7936 AppVideoProfile::InitProfileCb init_profile
) {
7937 auto profile
= std::make_unique
<AppVideoProfile
>(gpu
, gpu
.phys_device
,
7939 create_profile_info_chain
,
7940 create_capabilities_chain
,
7941 create_format_properties_chain_list
,
7943 if (profile
->supported
) {
7944 result
.push_back(std::move(profile
));
7948 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME
)) {
7949 const std::string codec_name
= "H.264 Decode";
7951 for (auto chroma_subsampling
: chroma_subsampling_list
) {
7952 for (auto luma_bit_depth
: bit_depth_list
) {
7953 for (auto chroma_bit_depth
: bit_depth_list
) {
7954 if (chroma_subsampling
.value
== VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
&& luma_bit_depth
.value
!= chroma_bit_depth
.value
) {
7955 // Ignore the chroma bit depth dimension for monochrome
7959 std::string profile_base_name
= codec_name
+ base_format(chroma_subsampling
, luma_bit_depth
, chroma_bit_depth
);
7960 VkVideoProfileInfoKHR profile_info
{
7961 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
,
7963 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR
,
7964 chroma_subsampling
.value
,
7965 luma_bit_depth
.value
,
7966 chroma_bit_depth
.value
7969 auto create_profile_info_chain
= [&](const void **ppnext
) -> std::unique_ptr
<video_profile_info_chain
> {
7970 auto profile_info_chain
= std::make_unique
<video_profile_info_chain
>();
7971 if (profile_info_chain
!= nullptr) {
7972 profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR
;
7973 profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pNext
= nullptr;
7974 *ppnext
= &profile_info_chain
->VideoDecodeH264ProfileInfoKHR
;
7975 ppnext
= &profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pNext
;
7977 return profile_info_chain
;
7980 auto create_capabilities_chain
= [&](void **ppnext
) -> std::unique_ptr
<video_capabilities_chain
> {
7981 auto capabilities_chain
= std::make_unique
<video_capabilities_chain
>();
7982 if (capabilities_chain
!= nullptr) {
7983 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME
)) {
7984 capabilities_chain
->VideoDecodeCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR
;
7985 capabilities_chain
->VideoDecodeCapabilitiesKHR
.pNext
= nullptr;
7986 *ppnext
= &capabilities_chain
->VideoDecodeCapabilitiesKHR
;
7987 ppnext
= &capabilities_chain
->VideoDecodeCapabilitiesKHR
.pNext
;
7990 if (capabilities_chain
!= nullptr) {
7991 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME
)) {
7992 capabilities_chain
->VideoDecodeH264CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR
;
7993 capabilities_chain
->VideoDecodeH264CapabilitiesKHR
.pNext
= nullptr;
7994 *ppnext
= &capabilities_chain
->VideoDecodeH264CapabilitiesKHR
;
7995 ppnext
= &capabilities_chain
->VideoDecodeH264CapabilitiesKHR
.pNext
;
7998 return capabilities_chain
;
8001 const AppVideoProfile::CreateFormatPropertiesChainCbList create_format_properties_chain_list
= {
8002 AppVideoProfile::CreateFormatPropertiesChainCb
{
8004 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
,
8005 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8006 bool supported
= true;
8009 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8010 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8011 return format_properties_chain
;
8014 AppVideoProfile::CreateFormatPropertiesChainCb
{
8016 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
,
8017 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8018 bool supported
= true;
8021 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8022 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8023 return format_properties_chain
;
8028 add_profile(profile_base_name
+ " Baseline progressive", profile_info
,
8029 create_profile_info_chain
, create_capabilities_chain
,
8030 create_format_properties_chain_list
,
8031 [](AppVideoProfile
& profile
) {
8032 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_BASELINE
;
8033 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR
;
8035 add_profile(profile_base_name
+ " Main progressive", profile_info
,
8036 create_profile_info_chain
, create_capabilities_chain
,
8037 create_format_properties_chain_list
,
8038 [](AppVideoProfile
& profile
) {
8039 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_MAIN
;
8040 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR
;
8042 add_profile(profile_base_name
+ " High progressive", profile_info
,
8043 create_profile_info_chain
, create_capabilities_chain
,
8044 create_format_properties_chain_list
,
8045 [](AppVideoProfile
& profile
) {
8046 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_HIGH
;
8047 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR
;
8049 add_profile(profile_base_name
+ " High 4:4:4 Predictive progressive", profile_info
,
8050 create_profile_info_chain
, create_capabilities_chain
,
8051 create_format_properties_chain_list
,
8052 [](AppVideoProfile
& profile
) {
8053 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE
;
8054 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR
;
8056 add_profile(profile_base_name
+ " Baseline interlaced (interleaved lines)", profile_info
,
8057 create_profile_info_chain
, create_capabilities_chain
,
8058 create_format_properties_chain_list
,
8059 [](AppVideoProfile
& profile
) {
8060 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_BASELINE
;
8061 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR
;
8063 add_profile(profile_base_name
+ " Main interlaced (interleaved lines)", profile_info
,
8064 create_profile_info_chain
, create_capabilities_chain
,
8065 create_format_properties_chain_list
,
8066 [](AppVideoProfile
& profile
) {
8067 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_MAIN
;
8068 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR
;
8070 add_profile(profile_base_name
+ " High interlaced (interleaved lines)", profile_info
,
8071 create_profile_info_chain
, create_capabilities_chain
,
8072 create_format_properties_chain_list
,
8073 [](AppVideoProfile
& profile
) {
8074 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_HIGH
;
8075 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR
;
8077 add_profile(profile_base_name
+ " High 4:4:4 Predictive interlaced (interleaved lines)", profile_info
,
8078 create_profile_info_chain
, create_capabilities_chain
,
8079 create_format_properties_chain_list
,
8080 [](AppVideoProfile
& profile
) {
8081 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE
;
8082 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR
;
8084 add_profile(profile_base_name
+ " Baseline interlaced (separate planes)", profile_info
,
8085 create_profile_info_chain
, create_capabilities_chain
,
8086 create_format_properties_chain_list
,
8087 [](AppVideoProfile
& profile
) {
8088 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_BASELINE
;
8089 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR
;
8091 add_profile(profile_base_name
+ " Main interlaced (separate planes)", profile_info
,
8092 create_profile_info_chain
, create_capabilities_chain
,
8093 create_format_properties_chain_list
,
8094 [](AppVideoProfile
& profile
) {
8095 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_MAIN
;
8096 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR
;
8098 add_profile(profile_base_name
+ " High interlaced (separate planes)", profile_info
,
8099 create_profile_info_chain
, create_capabilities_chain
,
8100 create_format_properties_chain_list
,
8101 [](AppVideoProfile
& profile
) {
8102 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_HIGH
;
8103 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR
;
8105 add_profile(profile_base_name
+ " High 4:4:4 Predictive interlaced (separate planes)", profile_info
,
8106 create_profile_info_chain
, create_capabilities_chain
,
8107 create_format_properties_chain_list
,
8108 [](AppVideoProfile
& profile
) {
8109 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE
;
8110 profile
.profile_info_chain
->VideoDecodeH264ProfileInfoKHR
.pictureLayout
= VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR
;
8117 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME
)) {
8118 const std::string codec_name
= "H.265 Decode";
8120 for (auto chroma_subsampling
: chroma_subsampling_list
) {
8121 for (auto luma_bit_depth
: bit_depth_list
) {
8122 for (auto chroma_bit_depth
: bit_depth_list
) {
8123 if (chroma_subsampling
.value
== VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
&& luma_bit_depth
.value
!= chroma_bit_depth
.value
) {
8124 // Ignore the chroma bit depth dimension for monochrome
8128 std::string profile_base_name
= codec_name
+ base_format(chroma_subsampling
, luma_bit_depth
, chroma_bit_depth
);
8129 VkVideoProfileInfoKHR profile_info
{
8130 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
,
8132 VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR
,
8133 chroma_subsampling
.value
,
8134 luma_bit_depth
.value
,
8135 chroma_bit_depth
.value
8138 auto create_profile_info_chain
= [&](const void **ppnext
) -> std::unique_ptr
<video_profile_info_chain
> {
8139 auto profile_info_chain
= std::make_unique
<video_profile_info_chain
>();
8140 if (profile_info_chain
!= nullptr) {
8141 profile_info_chain
->VideoDecodeH265ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR
;
8142 profile_info_chain
->VideoDecodeH265ProfileInfoKHR
.pNext
= nullptr;
8143 *ppnext
= &profile_info_chain
->VideoDecodeH265ProfileInfoKHR
;
8144 ppnext
= &profile_info_chain
->VideoDecodeH265ProfileInfoKHR
.pNext
;
8146 return profile_info_chain
;
8149 auto create_capabilities_chain
= [&](void **ppnext
) -> std::unique_ptr
<video_capabilities_chain
> {
8150 auto capabilities_chain
= std::make_unique
<video_capabilities_chain
>();
8151 if (capabilities_chain
!= nullptr) {
8152 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME
)) {
8153 capabilities_chain
->VideoDecodeCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR
;
8154 capabilities_chain
->VideoDecodeCapabilitiesKHR
.pNext
= nullptr;
8155 *ppnext
= &capabilities_chain
->VideoDecodeCapabilitiesKHR
;
8156 ppnext
= &capabilities_chain
->VideoDecodeCapabilitiesKHR
.pNext
;
8159 if (capabilities_chain
!= nullptr) {
8160 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME
)) {
8161 capabilities_chain
->VideoDecodeH265CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR
;
8162 capabilities_chain
->VideoDecodeH265CapabilitiesKHR
.pNext
= nullptr;
8163 *ppnext
= &capabilities_chain
->VideoDecodeH265CapabilitiesKHR
;
8164 ppnext
= &capabilities_chain
->VideoDecodeH265CapabilitiesKHR
.pNext
;
8167 return capabilities_chain
;
8170 const AppVideoProfile::CreateFormatPropertiesChainCbList create_format_properties_chain_list
= {
8171 AppVideoProfile::CreateFormatPropertiesChainCb
{
8173 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
,
8174 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8175 bool supported
= true;
8178 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8179 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8180 return format_properties_chain
;
8183 AppVideoProfile::CreateFormatPropertiesChainCb
{
8185 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
,
8186 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8187 bool supported
= true;
8190 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8191 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8192 return format_properties_chain
;
8197 add_profile(profile_base_name
+ " Main", profile_info
,
8198 create_profile_info_chain
, create_capabilities_chain
,
8199 create_format_properties_chain_list
,
8200 [](AppVideoProfile
& profile
) {
8201 profile
.profile_info_chain
->VideoDecodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_MAIN
;
8203 add_profile(profile_base_name
+ " Main 10", profile_info
,
8204 create_profile_info_chain
, create_capabilities_chain
,
8205 create_format_properties_chain_list
,
8206 [](AppVideoProfile
& profile
) {
8207 profile
.profile_info_chain
->VideoDecodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_MAIN_10
;
8209 add_profile(profile_base_name
+ " Main Still Picture", profile_info
,
8210 create_profile_info_chain
, create_capabilities_chain
,
8211 create_format_properties_chain_list
,
8212 [](AppVideoProfile
& profile
) {
8213 profile
.profile_info_chain
->VideoDecodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE
;
8215 add_profile(profile_base_name
+ " Format range extensions", profile_info
,
8216 create_profile_info_chain
, create_capabilities_chain
,
8217 create_format_properties_chain_list
,
8218 [](AppVideoProfile
& profile
) {
8219 profile
.profile_info_chain
->VideoDecodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS
;
8221 add_profile(profile_base_name
+ " Screen content coding extensions", profile_info
,
8222 create_profile_info_chain
, create_capabilities_chain
,
8223 create_format_properties_chain_list
,
8224 [](AppVideoProfile
& profile
) {
8225 profile
.profile_info_chain
->VideoDecodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS
;
8232 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME
)) {
8233 const std::string codec_name
= "AV1 Decode";
8235 for (auto chroma_subsampling
: chroma_subsampling_list
) {
8236 for (auto luma_bit_depth
: bit_depth_list
) {
8237 for (auto chroma_bit_depth
: bit_depth_list
) {
8238 if (chroma_subsampling
.value
== VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
&& luma_bit_depth
.value
!= chroma_bit_depth
.value
) {
8239 // Ignore the chroma bit depth dimension for monochrome
8243 std::string profile_base_name
= codec_name
+ base_format(chroma_subsampling
, luma_bit_depth
, chroma_bit_depth
);
8244 VkVideoProfileInfoKHR profile_info
{
8245 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
,
8247 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR
,
8248 chroma_subsampling
.value
,
8249 luma_bit_depth
.value
,
8250 chroma_bit_depth
.value
8253 auto create_profile_info_chain
= [&](const void **ppnext
) -> std::unique_ptr
<video_profile_info_chain
> {
8254 auto profile_info_chain
= std::make_unique
<video_profile_info_chain
>();
8255 if (profile_info_chain
!= nullptr) {
8256 profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR
;
8257 profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.pNext
= nullptr;
8258 *ppnext
= &profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
;
8259 ppnext
= &profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.pNext
;
8261 return profile_info_chain
;
8264 auto create_capabilities_chain
= [&](void **ppnext
) -> std::unique_ptr
<video_capabilities_chain
> {
8265 auto capabilities_chain
= std::make_unique
<video_capabilities_chain
>();
8266 if (capabilities_chain
!= nullptr) {
8267 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME
)) {
8268 capabilities_chain
->VideoDecodeCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR
;
8269 capabilities_chain
->VideoDecodeCapabilitiesKHR
.pNext
= nullptr;
8270 *ppnext
= &capabilities_chain
->VideoDecodeCapabilitiesKHR
;
8271 ppnext
= &capabilities_chain
->VideoDecodeCapabilitiesKHR
.pNext
;
8274 if (capabilities_chain
!= nullptr) {
8275 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME
)) {
8276 capabilities_chain
->VideoDecodeAV1CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR
;
8277 capabilities_chain
->VideoDecodeAV1CapabilitiesKHR
.pNext
= nullptr;
8278 *ppnext
= &capabilities_chain
->VideoDecodeAV1CapabilitiesKHR
;
8279 ppnext
= &capabilities_chain
->VideoDecodeAV1CapabilitiesKHR
.pNext
;
8282 return capabilities_chain
;
8285 const AppVideoProfile::CreateFormatPropertiesChainCbList create_format_properties_chain_list
= {
8286 AppVideoProfile::CreateFormatPropertiesChainCb
{
8288 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
,
8289 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8290 bool supported
= true;
8293 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8294 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8295 return format_properties_chain
;
8298 AppVideoProfile::CreateFormatPropertiesChainCb
{
8300 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
,
8301 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8302 bool supported
= true;
8305 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8306 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8307 return format_properties_chain
;
8312 add_profile(profile_base_name
+ " Main with film grain support", profile_info
,
8313 create_profile_info_chain
, create_capabilities_chain
,
8314 create_format_properties_chain_list
,
8315 [](AppVideoProfile
& profile
) {
8316 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_MAIN
;
8317 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.filmGrainSupport
= VK_TRUE
;
8319 add_profile(profile_base_name
+ " High with film grain support", profile_info
,
8320 create_profile_info_chain
, create_capabilities_chain
,
8321 create_format_properties_chain_list
,
8322 [](AppVideoProfile
& profile
) {
8323 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_HIGH
;
8324 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.filmGrainSupport
= VK_TRUE
;
8326 add_profile(profile_base_name
+ " Professional with film grain support", profile_info
,
8327 create_profile_info_chain
, create_capabilities_chain
,
8328 create_format_properties_chain_list
,
8329 [](AppVideoProfile
& profile
) {
8330 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_PROFESSIONAL
;
8331 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.filmGrainSupport
= VK_TRUE
;
8333 add_profile(profile_base_name
+ " Main without film grain support", profile_info
,
8334 create_profile_info_chain
, create_capabilities_chain
,
8335 create_format_properties_chain_list
,
8336 [](AppVideoProfile
& profile
) {
8337 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_MAIN
;
8338 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.filmGrainSupport
= VK_FALSE
;
8340 add_profile(profile_base_name
+ " High without film grain support", profile_info
,
8341 create_profile_info_chain
, create_capabilities_chain
,
8342 create_format_properties_chain_list
,
8343 [](AppVideoProfile
& profile
) {
8344 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_HIGH
;
8345 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.filmGrainSupport
= VK_FALSE
;
8347 add_profile(profile_base_name
+ " Professional without film grain support", profile_info
,
8348 create_profile_info_chain
, create_capabilities_chain
,
8349 create_format_properties_chain_list
,
8350 [](AppVideoProfile
& profile
) {
8351 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_PROFESSIONAL
;
8352 profile
.profile_info_chain
->VideoDecodeAV1ProfileInfoKHR
.filmGrainSupport
= VK_FALSE
;
8359 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME
)) {
8360 const std::string codec_name
= "H.264 Encode";
8362 for (auto chroma_subsampling
: chroma_subsampling_list
) {
8363 for (auto luma_bit_depth
: bit_depth_list
) {
8364 for (auto chroma_bit_depth
: bit_depth_list
) {
8365 if (chroma_subsampling
.value
== VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
&& luma_bit_depth
.value
!= chroma_bit_depth
.value
) {
8366 // Ignore the chroma bit depth dimension for monochrome
8370 std::string profile_base_name
= codec_name
+ base_format(chroma_subsampling
, luma_bit_depth
, chroma_bit_depth
);
8371 VkVideoProfileInfoKHR profile_info
{
8372 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
,
8374 VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR
,
8375 chroma_subsampling
.value
,
8376 luma_bit_depth
.value
,
8377 chroma_bit_depth
.value
8380 auto create_profile_info_chain
= [&](const void **ppnext
) -> std::unique_ptr
<video_profile_info_chain
> {
8381 auto profile_info_chain
= std::make_unique
<video_profile_info_chain
>();
8382 if (profile_info_chain
!= nullptr) {
8383 profile_info_chain
->VideoEncodeH264ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR
;
8384 profile_info_chain
->VideoEncodeH264ProfileInfoKHR
.pNext
= nullptr;
8385 *ppnext
= &profile_info_chain
->VideoEncodeH264ProfileInfoKHR
;
8386 ppnext
= &profile_info_chain
->VideoEncodeH264ProfileInfoKHR
.pNext
;
8388 return profile_info_chain
;
8391 auto create_capabilities_chain
= [&](void **ppnext
) -> std::unique_ptr
<video_capabilities_chain
> {
8392 auto capabilities_chain
= std::make_unique
<video_capabilities_chain
>();
8393 if (capabilities_chain
!= nullptr) {
8394 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8395 capabilities_chain
->VideoEncodeCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
;
8396 capabilities_chain
->VideoEncodeCapabilitiesKHR
.pNext
= nullptr;
8397 *ppnext
= &capabilities_chain
->VideoEncodeCapabilitiesKHR
;
8398 ppnext
= &capabilities_chain
->VideoEncodeCapabilitiesKHR
.pNext
;
8401 if (capabilities_chain
!= nullptr) {
8402 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8403 capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR
;
8404 capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.pNext
= nullptr;
8405 *ppnext
= &capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
;
8406 ppnext
= &capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.pNext
;
8409 if (capabilities_chain
!= nullptr) {
8410 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME
)) {
8411 capabilities_chain
->VideoEncodeH264CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR
;
8412 capabilities_chain
->VideoEncodeH264CapabilitiesKHR
.pNext
= nullptr;
8413 *ppnext
= &capabilities_chain
->VideoEncodeH264CapabilitiesKHR
;
8414 ppnext
= &capabilities_chain
->VideoEncodeH264CapabilitiesKHR
.pNext
;
8417 if (capabilities_chain
!= nullptr) {
8418 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8419 capabilities_chain
->VideoEncodeH264QuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR
;
8420 capabilities_chain
->VideoEncodeH264QuantizationMapCapabilitiesKHR
.pNext
= nullptr;
8421 *ppnext
= &capabilities_chain
->VideoEncodeH264QuantizationMapCapabilitiesKHR
;
8422 ppnext
= &capabilities_chain
->VideoEncodeH264QuantizationMapCapabilitiesKHR
.pNext
;
8425 return capabilities_chain
;
8428 const AppVideoProfile::CreateFormatPropertiesChainCbList create_format_properties_chain_list
= {
8429 AppVideoProfile::CreateFormatPropertiesChainCb
{
8431 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
,
8432 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8433 bool supported
= true;
8436 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8437 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8438 return format_properties_chain
;
8441 AppVideoProfile::CreateFormatPropertiesChainCb
{
8443 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
,
8444 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8445 bool supported
= true;
8448 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8449 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8450 return format_properties_chain
;
8453 AppVideoProfile::CreateFormatPropertiesChainCb
{
8454 "Quantization Delta Map",
8455 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR
,
8456 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8457 bool supported
= true;
8458 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8459 auto caps
= reinterpret_cast<const VkVideoEncodeCapabilitiesKHR
*>(find_caps_struct(capabilities
, VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
));
8460 if (caps
!= nullptr) {
8461 supported
= supported
&& ((caps
->flags
& VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR
) != 0);
8470 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8471 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8472 if (format_properties_chain
!= nullptr) {
8473 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8474 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
;
8475 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
= nullptr;
8476 *ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
;
8477 ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
;
8480 return format_properties_chain
;
8483 AppVideoProfile::CreateFormatPropertiesChainCb
{
8485 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR
,
8486 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8487 bool supported
= true;
8488 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8489 auto caps
= reinterpret_cast<const VkVideoEncodeCapabilitiesKHR
*>(find_caps_struct(capabilities
, VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
));
8490 if (caps
!= nullptr) {
8491 supported
= supported
&& ((caps
->flags
& VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR
) != 0);
8500 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8501 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8502 if (format_properties_chain
!= nullptr) {
8503 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8504 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
;
8505 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
= nullptr;
8506 *ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
;
8507 ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
;
8510 return format_properties_chain
;
8515 add_profile(profile_base_name
+ " Baseline", profile_info
,
8516 create_profile_info_chain
, create_capabilities_chain
,
8517 create_format_properties_chain_list
,
8518 [](AppVideoProfile
& profile
) {
8519 profile
.profile_info_chain
->VideoEncodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_BASELINE
;
8521 add_profile(profile_base_name
+ " Main", profile_info
,
8522 create_profile_info_chain
, create_capabilities_chain
,
8523 create_format_properties_chain_list
,
8524 [](AppVideoProfile
& profile
) {
8525 profile
.profile_info_chain
->VideoEncodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_MAIN
;
8527 add_profile(profile_base_name
+ " High", profile_info
,
8528 create_profile_info_chain
, create_capabilities_chain
,
8529 create_format_properties_chain_list
,
8530 [](AppVideoProfile
& profile
) {
8531 profile
.profile_info_chain
->VideoEncodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_HIGH
;
8533 add_profile(profile_base_name
+ " High 4:4:4 Predictive", profile_info
,
8534 create_profile_info_chain
, create_capabilities_chain
,
8535 create_format_properties_chain_list
,
8536 [](AppVideoProfile
& profile
) {
8537 profile
.profile_info_chain
->VideoEncodeH264ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H264_PROFILE_IDC_HIGH_444_PREDICTIVE
;
8544 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME
)) {
8545 const std::string codec_name
= "H.265 Encode";
8547 for (auto chroma_subsampling
: chroma_subsampling_list
) {
8548 for (auto luma_bit_depth
: bit_depth_list
) {
8549 for (auto chroma_bit_depth
: bit_depth_list
) {
8550 if (chroma_subsampling
.value
== VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
&& luma_bit_depth
.value
!= chroma_bit_depth
.value
) {
8551 // Ignore the chroma bit depth dimension for monochrome
8555 std::string profile_base_name
= codec_name
+ base_format(chroma_subsampling
, luma_bit_depth
, chroma_bit_depth
);
8556 VkVideoProfileInfoKHR profile_info
{
8557 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
,
8559 VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR
,
8560 chroma_subsampling
.value
,
8561 luma_bit_depth
.value
,
8562 chroma_bit_depth
.value
8565 auto create_profile_info_chain
= [&](const void **ppnext
) -> std::unique_ptr
<video_profile_info_chain
> {
8566 auto profile_info_chain
= std::make_unique
<video_profile_info_chain
>();
8567 if (profile_info_chain
!= nullptr) {
8568 profile_info_chain
->VideoEncodeH265ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR
;
8569 profile_info_chain
->VideoEncodeH265ProfileInfoKHR
.pNext
= nullptr;
8570 *ppnext
= &profile_info_chain
->VideoEncodeH265ProfileInfoKHR
;
8571 ppnext
= &profile_info_chain
->VideoEncodeH265ProfileInfoKHR
.pNext
;
8573 return profile_info_chain
;
8576 auto create_capabilities_chain
= [&](void **ppnext
) -> std::unique_ptr
<video_capabilities_chain
> {
8577 auto capabilities_chain
= std::make_unique
<video_capabilities_chain
>();
8578 if (capabilities_chain
!= nullptr) {
8579 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8580 capabilities_chain
->VideoEncodeCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
;
8581 capabilities_chain
->VideoEncodeCapabilitiesKHR
.pNext
= nullptr;
8582 *ppnext
= &capabilities_chain
->VideoEncodeCapabilitiesKHR
;
8583 ppnext
= &capabilities_chain
->VideoEncodeCapabilitiesKHR
.pNext
;
8586 if (capabilities_chain
!= nullptr) {
8587 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8588 capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR
;
8589 capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.pNext
= nullptr;
8590 *ppnext
= &capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
;
8591 ppnext
= &capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.pNext
;
8594 if (capabilities_chain
!= nullptr) {
8595 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME
)) {
8596 capabilities_chain
->VideoEncodeH265CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR
;
8597 capabilities_chain
->VideoEncodeH265CapabilitiesKHR
.pNext
= nullptr;
8598 *ppnext
= &capabilities_chain
->VideoEncodeH265CapabilitiesKHR
;
8599 ppnext
= &capabilities_chain
->VideoEncodeH265CapabilitiesKHR
.pNext
;
8602 if (capabilities_chain
!= nullptr) {
8603 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8604 capabilities_chain
->VideoEncodeH265QuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR
;
8605 capabilities_chain
->VideoEncodeH265QuantizationMapCapabilitiesKHR
.pNext
= nullptr;
8606 *ppnext
= &capabilities_chain
->VideoEncodeH265QuantizationMapCapabilitiesKHR
;
8607 ppnext
= &capabilities_chain
->VideoEncodeH265QuantizationMapCapabilitiesKHR
.pNext
;
8610 return capabilities_chain
;
8613 const AppVideoProfile::CreateFormatPropertiesChainCbList create_format_properties_chain_list
= {
8614 AppVideoProfile::CreateFormatPropertiesChainCb
{
8616 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
,
8617 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8618 bool supported
= true;
8621 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8622 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8623 return format_properties_chain
;
8626 AppVideoProfile::CreateFormatPropertiesChainCb
{
8628 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
,
8629 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8630 bool supported
= true;
8633 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8634 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8635 return format_properties_chain
;
8638 AppVideoProfile::CreateFormatPropertiesChainCb
{
8639 "Quantization Delta Map",
8640 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR
,
8641 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8642 bool supported
= true;
8643 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8644 auto caps
= reinterpret_cast<const VkVideoEncodeCapabilitiesKHR
*>(find_caps_struct(capabilities
, VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
));
8645 if (caps
!= nullptr) {
8646 supported
= supported
&& ((caps
->flags
& VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR
) != 0);
8655 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8656 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8657 if (format_properties_chain
!= nullptr) {
8658 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8659 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
;
8660 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
= nullptr;
8661 *ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
;
8662 ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
;
8665 if (format_properties_chain
!= nullptr) {
8666 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8667 format_properties_chain
->VideoFormatH265QuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR
;
8668 format_properties_chain
->VideoFormatH265QuantizationMapPropertiesKHR
.pNext
= nullptr;
8669 *ppnext
= &format_properties_chain
->VideoFormatH265QuantizationMapPropertiesKHR
;
8670 ppnext
= &format_properties_chain
->VideoFormatH265QuantizationMapPropertiesKHR
.pNext
;
8673 return format_properties_chain
;
8676 AppVideoProfile::CreateFormatPropertiesChainCb
{
8678 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR
,
8679 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8680 bool supported
= true;
8681 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8682 auto caps
= reinterpret_cast<const VkVideoEncodeCapabilitiesKHR
*>(find_caps_struct(capabilities
, VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
));
8683 if (caps
!= nullptr) {
8684 supported
= supported
&& ((caps
->flags
& VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR
) != 0);
8693 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8694 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8695 if (format_properties_chain
!= nullptr) {
8696 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8697 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
;
8698 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
= nullptr;
8699 *ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
;
8700 ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
;
8703 if (format_properties_chain
!= nullptr) {
8704 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8705 format_properties_chain
->VideoFormatH265QuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR
;
8706 format_properties_chain
->VideoFormatH265QuantizationMapPropertiesKHR
.pNext
= nullptr;
8707 *ppnext
= &format_properties_chain
->VideoFormatH265QuantizationMapPropertiesKHR
;
8708 ppnext
= &format_properties_chain
->VideoFormatH265QuantizationMapPropertiesKHR
.pNext
;
8711 return format_properties_chain
;
8716 add_profile(profile_base_name
+ " Main", profile_info
,
8717 create_profile_info_chain
, create_capabilities_chain
,
8718 create_format_properties_chain_list
,
8719 [](AppVideoProfile
& profile
) {
8720 profile
.profile_info_chain
->VideoEncodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_MAIN
;
8722 add_profile(profile_base_name
+ " Main 10", profile_info
,
8723 create_profile_info_chain
, create_capabilities_chain
,
8724 create_format_properties_chain_list
,
8725 [](AppVideoProfile
& profile
) {
8726 profile
.profile_info_chain
->VideoEncodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_MAIN_10
;
8728 add_profile(profile_base_name
+ " Main Still Picture", profile_info
,
8729 create_profile_info_chain
, create_capabilities_chain
,
8730 create_format_properties_chain_list
,
8731 [](AppVideoProfile
& profile
) {
8732 profile
.profile_info_chain
->VideoEncodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_MAIN_STILL_PICTURE
;
8734 add_profile(profile_base_name
+ " Format range extensions", profile_info
,
8735 create_profile_info_chain
, create_capabilities_chain
,
8736 create_format_properties_chain_list
,
8737 [](AppVideoProfile
& profile
) {
8738 profile
.profile_info_chain
->VideoEncodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_FORMAT_RANGE_EXTENSIONS
;
8740 add_profile(profile_base_name
+ " Screen content coding extensions", profile_info
,
8741 create_profile_info_chain
, create_capabilities_chain
,
8742 create_format_properties_chain_list
,
8743 [](AppVideoProfile
& profile
) {
8744 profile
.profile_info_chain
->VideoEncodeH265ProfileInfoKHR
.stdProfileIdc
= STD_VIDEO_H265_PROFILE_IDC_SCC_EXTENSIONS
;
8751 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME
)) {
8752 const std::string codec_name
= "AV1 Encode";
8754 for (auto chroma_subsampling
: chroma_subsampling_list
) {
8755 for (auto luma_bit_depth
: bit_depth_list
) {
8756 for (auto chroma_bit_depth
: bit_depth_list
) {
8757 if (chroma_subsampling
.value
== VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR
&& luma_bit_depth
.value
!= chroma_bit_depth
.value
) {
8758 // Ignore the chroma bit depth dimension for monochrome
8762 std::string profile_base_name
= codec_name
+ base_format(chroma_subsampling
, luma_bit_depth
, chroma_bit_depth
);
8763 VkVideoProfileInfoKHR profile_info
{
8764 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR
,
8766 VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR
,
8767 chroma_subsampling
.value
,
8768 luma_bit_depth
.value
,
8769 chroma_bit_depth
.value
8772 auto create_profile_info_chain
= [&](const void **ppnext
) -> std::unique_ptr
<video_profile_info_chain
> {
8773 auto profile_info_chain
= std::make_unique
<video_profile_info_chain
>();
8774 if (profile_info_chain
!= nullptr) {
8775 profile_info_chain
->VideoEncodeAV1ProfileInfoKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR
;
8776 profile_info_chain
->VideoEncodeAV1ProfileInfoKHR
.pNext
= nullptr;
8777 *ppnext
= &profile_info_chain
->VideoEncodeAV1ProfileInfoKHR
;
8778 ppnext
= &profile_info_chain
->VideoEncodeAV1ProfileInfoKHR
.pNext
;
8780 return profile_info_chain
;
8783 auto create_capabilities_chain
= [&](void **ppnext
) -> std::unique_ptr
<video_capabilities_chain
> {
8784 auto capabilities_chain
= std::make_unique
<video_capabilities_chain
>();
8785 if (capabilities_chain
!= nullptr) {
8786 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8787 capabilities_chain
->VideoEncodeCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
;
8788 capabilities_chain
->VideoEncodeCapabilitiesKHR
.pNext
= nullptr;
8789 *ppnext
= &capabilities_chain
->VideoEncodeCapabilitiesKHR
;
8790 ppnext
= &capabilities_chain
->VideoEncodeCapabilitiesKHR
.pNext
;
8793 if (capabilities_chain
!= nullptr) {
8794 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8795 capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR
;
8796 capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.pNext
= nullptr;
8797 *ppnext
= &capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
;
8798 ppnext
= &capabilities_chain
->VideoEncodeQuantizationMapCapabilitiesKHR
.pNext
;
8801 if (capabilities_chain
!= nullptr) {
8802 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME
)) {
8803 capabilities_chain
->VideoEncodeAV1CapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR
;
8804 capabilities_chain
->VideoEncodeAV1CapabilitiesKHR
.pNext
= nullptr;
8805 *ppnext
= &capabilities_chain
->VideoEncodeAV1CapabilitiesKHR
;
8806 ppnext
= &capabilities_chain
->VideoEncodeAV1CapabilitiesKHR
.pNext
;
8809 return capabilities_chain
;
8812 const AppVideoProfile::CreateFormatPropertiesChainCbList create_format_properties_chain_list
= {
8813 AppVideoProfile::CreateFormatPropertiesChainCb
{
8815 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
,
8816 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8817 bool supported
= true;
8820 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8821 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8822 return format_properties_chain
;
8825 AppVideoProfile::CreateFormatPropertiesChainCb
{
8827 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
,
8828 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8829 bool supported
= true;
8832 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8833 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8834 return format_properties_chain
;
8837 AppVideoProfile::CreateFormatPropertiesChainCb
{
8838 "Quantization Delta Map",
8839 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR
,
8840 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8841 bool supported
= true;
8842 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8843 auto caps
= reinterpret_cast<const VkVideoEncodeCapabilitiesKHR
*>(find_caps_struct(capabilities
, VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
));
8844 if (caps
!= nullptr) {
8845 supported
= supported
&& ((caps
->flags
& VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR
) != 0);
8854 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8855 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8856 if (format_properties_chain
!= nullptr) {
8857 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8858 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
;
8859 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
= nullptr;
8860 *ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
;
8861 ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
;
8864 if (format_properties_chain
!= nullptr) {
8865 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8866 format_properties_chain
->VideoFormatAV1QuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR
;
8867 format_properties_chain
->VideoFormatAV1QuantizationMapPropertiesKHR
.pNext
= nullptr;
8868 *ppnext
= &format_properties_chain
->VideoFormatAV1QuantizationMapPropertiesKHR
;
8869 ppnext
= &format_properties_chain
->VideoFormatAV1QuantizationMapPropertiesKHR
.pNext
;
8872 return format_properties_chain
;
8875 AppVideoProfile::CreateFormatPropertiesChainCb
{
8877 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR
,
8878 [&](const VkVideoCapabilitiesKHR
&capabilities
) -> bool {
8879 bool supported
= true;
8880 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME
)) {
8881 auto caps
= reinterpret_cast<const VkVideoEncodeCapabilitiesKHR
*>(find_caps_struct(capabilities
, VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR
));
8882 if (caps
!= nullptr) {
8883 supported
= supported
&& ((caps
->flags
& VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR
) != 0);
8892 [&](void **ppnext
) -> std::unique_ptr
<video_format_properties_chain
> {
8893 auto format_properties_chain
= std::make_unique
<video_format_properties_chain
>();
8894 if (format_properties_chain
!= nullptr) {
8895 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8896 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR
;
8897 format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
= nullptr;
8898 *ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
;
8899 ppnext
= &format_properties_chain
->VideoFormatQuantizationMapPropertiesKHR
.pNext
;
8902 if (format_properties_chain
!= nullptr) {
8903 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME
)) {
8904 format_properties_chain
->VideoFormatAV1QuantizationMapPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR
;
8905 format_properties_chain
->VideoFormatAV1QuantizationMapPropertiesKHR
.pNext
= nullptr;
8906 *ppnext
= &format_properties_chain
->VideoFormatAV1QuantizationMapPropertiesKHR
;
8907 ppnext
= &format_properties_chain
->VideoFormatAV1QuantizationMapPropertiesKHR
.pNext
;
8910 return format_properties_chain
;
8915 add_profile(profile_base_name
+ " Main", profile_info
,
8916 create_profile_info_chain
, create_capabilities_chain
,
8917 create_format_properties_chain_list
,
8918 [](AppVideoProfile
& profile
) {
8919 profile
.profile_info_chain
->VideoEncodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_MAIN
;
8921 add_profile(profile_base_name
+ " High", profile_info
,
8922 create_profile_info_chain
, create_capabilities_chain
,
8923 create_format_properties_chain_list
,
8924 [](AppVideoProfile
& profile
) {
8925 profile
.profile_info_chain
->VideoEncodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_HIGH
;
8927 add_profile(profile_base_name
+ " Professional", profile_info
,
8928 create_profile_info_chain
, create_capabilities_chain
,
8929 create_format_properties_chain_list
,
8930 [](AppVideoProfile
& profile
) {
8931 profile
.profile_info_chain
->VideoEncodeAV1ProfileInfoKHR
.stdProfile
= STD_VIDEO_AV1_PROFILE_PROFESSIONAL
;