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-2023 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
VkColorSpaceKHRString(VkColorSpaceKHR value
) {
50 case (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
): return "COLOR_SPACE_SRGB_NONLINEAR_KHR";
51 case (VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT
): return "COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
52 case (VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
): return "COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
53 case (VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
): return "COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
54 case (VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT
): return "COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
55 case (VK_COLOR_SPACE_BT709_LINEAR_EXT
): return "COLOR_SPACE_BT709_LINEAR_EXT";
56 case (VK_COLOR_SPACE_BT709_NONLINEAR_EXT
): return "COLOR_SPACE_BT709_NONLINEAR_EXT";
57 case (VK_COLOR_SPACE_BT2020_LINEAR_EXT
): return "COLOR_SPACE_BT2020_LINEAR_EXT";
58 case (VK_COLOR_SPACE_HDR10_ST2084_EXT
): return "COLOR_SPACE_HDR10_ST2084_EXT";
59 case (VK_COLOR_SPACE_DOLBYVISION_EXT
): return "COLOR_SPACE_DOLBYVISION_EXT";
60 case (VK_COLOR_SPACE_HDR10_HLG_EXT
): return "COLOR_SPACE_HDR10_HLG_EXT";
61 case (VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT
): return "COLOR_SPACE_ADOBERGB_LINEAR_EXT";
62 case (VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT
): return "COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
63 case (VK_COLOR_SPACE_PASS_THROUGH_EXT
): return "COLOR_SPACE_PASS_THROUGH_EXT";
64 case (VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT
): return "COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
65 case (VK_COLOR_SPACE_DISPLAY_NATIVE_AMD
): return "COLOR_SPACE_DISPLAY_NATIVE_AMD";
66 default: return std::string("UNKNOWN_VkColorSpaceKHR_value") + std::to_string(value
);
69 void DumpVkColorSpaceKHR(Printer
&p
, std::string name
, VkColorSpaceKHR value
) {
70 if (p
.Type() == OutputType::json
)
71 p
.PrintKeyString(name
, std::string("VK_") + VkColorSpaceKHRString(value
));
73 p
.PrintKeyString(name
, VkColorSpaceKHRString(value
));
75 std::string
VkDriverIdString(VkDriverId value
) {
77 case (VK_DRIVER_ID_AMD_PROPRIETARY
): return "DRIVER_ID_AMD_PROPRIETARY";
78 case (VK_DRIVER_ID_AMD_OPEN_SOURCE
): return "DRIVER_ID_AMD_OPEN_SOURCE";
79 case (VK_DRIVER_ID_MESA_RADV
): return "DRIVER_ID_MESA_RADV";
80 case (VK_DRIVER_ID_NVIDIA_PROPRIETARY
): return "DRIVER_ID_NVIDIA_PROPRIETARY";
81 case (VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS
): return "DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
82 case (VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA
): return "DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
83 case (VK_DRIVER_ID_IMAGINATION_PROPRIETARY
): return "DRIVER_ID_IMAGINATION_PROPRIETARY";
84 case (VK_DRIVER_ID_QUALCOMM_PROPRIETARY
): return "DRIVER_ID_QUALCOMM_PROPRIETARY";
85 case (VK_DRIVER_ID_ARM_PROPRIETARY
): return "DRIVER_ID_ARM_PROPRIETARY";
86 case (VK_DRIVER_ID_GOOGLE_SWIFTSHADER
): return "DRIVER_ID_GOOGLE_SWIFTSHADER";
87 case (VK_DRIVER_ID_GGP_PROPRIETARY
): return "DRIVER_ID_GGP_PROPRIETARY";
88 case (VK_DRIVER_ID_BROADCOM_PROPRIETARY
): return "DRIVER_ID_BROADCOM_PROPRIETARY";
89 case (VK_DRIVER_ID_MESA_LLVMPIPE
): return "DRIVER_ID_MESA_LLVMPIPE";
90 case (VK_DRIVER_ID_MOLTENVK
): return "DRIVER_ID_MOLTENVK";
91 case (VK_DRIVER_ID_COREAVI_PROPRIETARY
): return "DRIVER_ID_COREAVI_PROPRIETARY";
92 case (VK_DRIVER_ID_JUICE_PROPRIETARY
): return "DRIVER_ID_JUICE_PROPRIETARY";
93 case (VK_DRIVER_ID_VERISILICON_PROPRIETARY
): return "DRIVER_ID_VERISILICON_PROPRIETARY";
94 case (VK_DRIVER_ID_MESA_TURNIP
): return "DRIVER_ID_MESA_TURNIP";
95 case (VK_DRIVER_ID_MESA_V3DV
): return "DRIVER_ID_MESA_V3DV";
96 case (VK_DRIVER_ID_MESA_PANVK
): return "DRIVER_ID_MESA_PANVK";
97 case (VK_DRIVER_ID_SAMSUNG_PROPRIETARY
): return "DRIVER_ID_SAMSUNG_PROPRIETARY";
98 case (VK_DRIVER_ID_MESA_VENUS
): return "DRIVER_ID_MESA_VENUS";
99 case (VK_DRIVER_ID_MESA_DOZEN
): return "DRIVER_ID_MESA_DOZEN";
100 case (VK_DRIVER_ID_MESA_NVK
): return "DRIVER_ID_MESA_NVK";
101 case (VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA
): return "DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA";
102 case (VK_DRIVER_ID_MESA_HONEYKRISP
): return "DRIVER_ID_MESA_HONEYKRISP";
103 case (VK_DRIVER_ID_RESERVED_27
): return "DRIVER_ID_RESERVED_27";
104 default: return std::string("UNKNOWN_VkDriverId_value") + std::to_string(value
);
107 void DumpVkDriverId(Printer
&p
, std::string name
, VkDriverId value
) {
108 if (p
.Type() == OutputType::json
)
109 p
.PrintKeyString(name
, std::string("VK_") + VkDriverIdString(value
));
111 p
.PrintKeyString(name
, VkDriverIdString(value
));
113 std::string
VkFormatString(VkFormat value
) {
115 case (VK_FORMAT_UNDEFINED
): return "FORMAT_UNDEFINED";
116 case (VK_FORMAT_R4G4_UNORM_PACK8
): return "FORMAT_R4G4_UNORM_PACK8";
117 case (VK_FORMAT_R4G4B4A4_UNORM_PACK16
): return "FORMAT_R4G4B4A4_UNORM_PACK16";
118 case (VK_FORMAT_B4G4R4A4_UNORM_PACK16
): return "FORMAT_B4G4R4A4_UNORM_PACK16";
119 case (VK_FORMAT_R5G6B5_UNORM_PACK16
): return "FORMAT_R5G6B5_UNORM_PACK16";
120 case (VK_FORMAT_B5G6R5_UNORM_PACK16
): return "FORMAT_B5G6R5_UNORM_PACK16";
121 case (VK_FORMAT_R5G5B5A1_UNORM_PACK16
): return "FORMAT_R5G5B5A1_UNORM_PACK16";
122 case (VK_FORMAT_B5G5R5A1_UNORM_PACK16
): return "FORMAT_B5G5R5A1_UNORM_PACK16";
123 case (VK_FORMAT_A1R5G5B5_UNORM_PACK16
): return "FORMAT_A1R5G5B5_UNORM_PACK16";
124 case (VK_FORMAT_R8_UNORM
): return "FORMAT_R8_UNORM";
125 case (VK_FORMAT_R8_SNORM
): return "FORMAT_R8_SNORM";
126 case (VK_FORMAT_R8_USCALED
): return "FORMAT_R8_USCALED";
127 case (VK_FORMAT_R8_SSCALED
): return "FORMAT_R8_SSCALED";
128 case (VK_FORMAT_R8_UINT
): return "FORMAT_R8_UINT";
129 case (VK_FORMAT_R8_SINT
): return "FORMAT_R8_SINT";
130 case (VK_FORMAT_R8_SRGB
): return "FORMAT_R8_SRGB";
131 case (VK_FORMAT_R8G8_UNORM
): return "FORMAT_R8G8_UNORM";
132 case (VK_FORMAT_R8G8_SNORM
): return "FORMAT_R8G8_SNORM";
133 case (VK_FORMAT_R8G8_USCALED
): return "FORMAT_R8G8_USCALED";
134 case (VK_FORMAT_R8G8_SSCALED
): return "FORMAT_R8G8_SSCALED";
135 case (VK_FORMAT_R8G8_UINT
): return "FORMAT_R8G8_UINT";
136 case (VK_FORMAT_R8G8_SINT
): return "FORMAT_R8G8_SINT";
137 case (VK_FORMAT_R8G8_SRGB
): return "FORMAT_R8G8_SRGB";
138 case (VK_FORMAT_R8G8B8_UNORM
): return "FORMAT_R8G8B8_UNORM";
139 case (VK_FORMAT_R8G8B8_SNORM
): return "FORMAT_R8G8B8_SNORM";
140 case (VK_FORMAT_R8G8B8_USCALED
): return "FORMAT_R8G8B8_USCALED";
141 case (VK_FORMAT_R8G8B8_SSCALED
): return "FORMAT_R8G8B8_SSCALED";
142 case (VK_FORMAT_R8G8B8_UINT
): return "FORMAT_R8G8B8_UINT";
143 case (VK_FORMAT_R8G8B8_SINT
): return "FORMAT_R8G8B8_SINT";
144 case (VK_FORMAT_R8G8B8_SRGB
): return "FORMAT_R8G8B8_SRGB";
145 case (VK_FORMAT_B8G8R8_UNORM
): return "FORMAT_B8G8R8_UNORM";
146 case (VK_FORMAT_B8G8R8_SNORM
): return "FORMAT_B8G8R8_SNORM";
147 case (VK_FORMAT_B8G8R8_USCALED
): return "FORMAT_B8G8R8_USCALED";
148 case (VK_FORMAT_B8G8R8_SSCALED
): return "FORMAT_B8G8R8_SSCALED";
149 case (VK_FORMAT_B8G8R8_UINT
): return "FORMAT_B8G8R8_UINT";
150 case (VK_FORMAT_B8G8R8_SINT
): return "FORMAT_B8G8R8_SINT";
151 case (VK_FORMAT_B8G8R8_SRGB
): return "FORMAT_B8G8R8_SRGB";
152 case (VK_FORMAT_R8G8B8A8_UNORM
): return "FORMAT_R8G8B8A8_UNORM";
153 case (VK_FORMAT_R8G8B8A8_SNORM
): return "FORMAT_R8G8B8A8_SNORM";
154 case (VK_FORMAT_R8G8B8A8_USCALED
): return "FORMAT_R8G8B8A8_USCALED";
155 case (VK_FORMAT_R8G8B8A8_SSCALED
): return "FORMAT_R8G8B8A8_SSCALED";
156 case (VK_FORMAT_R8G8B8A8_UINT
): return "FORMAT_R8G8B8A8_UINT";
157 case (VK_FORMAT_R8G8B8A8_SINT
): return "FORMAT_R8G8B8A8_SINT";
158 case (VK_FORMAT_R8G8B8A8_SRGB
): return "FORMAT_R8G8B8A8_SRGB";
159 case (VK_FORMAT_B8G8R8A8_UNORM
): return "FORMAT_B8G8R8A8_UNORM";
160 case (VK_FORMAT_B8G8R8A8_SNORM
): return "FORMAT_B8G8R8A8_SNORM";
161 case (VK_FORMAT_B8G8R8A8_USCALED
): return "FORMAT_B8G8R8A8_USCALED";
162 case (VK_FORMAT_B8G8R8A8_SSCALED
): return "FORMAT_B8G8R8A8_SSCALED";
163 case (VK_FORMAT_B8G8R8A8_UINT
): return "FORMAT_B8G8R8A8_UINT";
164 case (VK_FORMAT_B8G8R8A8_SINT
): return "FORMAT_B8G8R8A8_SINT";
165 case (VK_FORMAT_B8G8R8A8_SRGB
): return "FORMAT_B8G8R8A8_SRGB";
166 case (VK_FORMAT_A8B8G8R8_UNORM_PACK32
): return "FORMAT_A8B8G8R8_UNORM_PACK32";
167 case (VK_FORMAT_A8B8G8R8_SNORM_PACK32
): return "FORMAT_A8B8G8R8_SNORM_PACK32";
168 case (VK_FORMAT_A8B8G8R8_USCALED_PACK32
): return "FORMAT_A8B8G8R8_USCALED_PACK32";
169 case (VK_FORMAT_A8B8G8R8_SSCALED_PACK32
): return "FORMAT_A8B8G8R8_SSCALED_PACK32";
170 case (VK_FORMAT_A8B8G8R8_UINT_PACK32
): return "FORMAT_A8B8G8R8_UINT_PACK32";
171 case (VK_FORMAT_A8B8G8R8_SINT_PACK32
): return "FORMAT_A8B8G8R8_SINT_PACK32";
172 case (VK_FORMAT_A8B8G8R8_SRGB_PACK32
): return "FORMAT_A8B8G8R8_SRGB_PACK32";
173 case (VK_FORMAT_A2R10G10B10_UNORM_PACK32
): return "FORMAT_A2R10G10B10_UNORM_PACK32";
174 case (VK_FORMAT_A2R10G10B10_SNORM_PACK32
): return "FORMAT_A2R10G10B10_SNORM_PACK32";
175 case (VK_FORMAT_A2R10G10B10_USCALED_PACK32
): return "FORMAT_A2R10G10B10_USCALED_PACK32";
176 case (VK_FORMAT_A2R10G10B10_SSCALED_PACK32
): return "FORMAT_A2R10G10B10_SSCALED_PACK32";
177 case (VK_FORMAT_A2R10G10B10_UINT_PACK32
): return "FORMAT_A2R10G10B10_UINT_PACK32";
178 case (VK_FORMAT_A2R10G10B10_SINT_PACK32
): return "FORMAT_A2R10G10B10_SINT_PACK32";
179 case (VK_FORMAT_A2B10G10R10_UNORM_PACK32
): return "FORMAT_A2B10G10R10_UNORM_PACK32";
180 case (VK_FORMAT_A2B10G10R10_SNORM_PACK32
): return "FORMAT_A2B10G10R10_SNORM_PACK32";
181 case (VK_FORMAT_A2B10G10R10_USCALED_PACK32
): return "FORMAT_A2B10G10R10_USCALED_PACK32";
182 case (VK_FORMAT_A2B10G10R10_SSCALED_PACK32
): return "FORMAT_A2B10G10R10_SSCALED_PACK32";
183 case (VK_FORMAT_A2B10G10R10_UINT_PACK32
): return "FORMAT_A2B10G10R10_UINT_PACK32";
184 case (VK_FORMAT_A2B10G10R10_SINT_PACK32
): return "FORMAT_A2B10G10R10_SINT_PACK32";
185 case (VK_FORMAT_R16_UNORM
): return "FORMAT_R16_UNORM";
186 case (VK_FORMAT_R16_SNORM
): return "FORMAT_R16_SNORM";
187 case (VK_FORMAT_R16_USCALED
): return "FORMAT_R16_USCALED";
188 case (VK_FORMAT_R16_SSCALED
): return "FORMAT_R16_SSCALED";
189 case (VK_FORMAT_R16_UINT
): return "FORMAT_R16_UINT";
190 case (VK_FORMAT_R16_SINT
): return "FORMAT_R16_SINT";
191 case (VK_FORMAT_R16_SFLOAT
): return "FORMAT_R16_SFLOAT";
192 case (VK_FORMAT_R16G16_UNORM
): return "FORMAT_R16G16_UNORM";
193 case (VK_FORMAT_R16G16_SNORM
): return "FORMAT_R16G16_SNORM";
194 case (VK_FORMAT_R16G16_USCALED
): return "FORMAT_R16G16_USCALED";
195 case (VK_FORMAT_R16G16_SSCALED
): return "FORMAT_R16G16_SSCALED";
196 case (VK_FORMAT_R16G16_UINT
): return "FORMAT_R16G16_UINT";
197 case (VK_FORMAT_R16G16_SINT
): return "FORMAT_R16G16_SINT";
198 case (VK_FORMAT_R16G16_SFLOAT
): return "FORMAT_R16G16_SFLOAT";
199 case (VK_FORMAT_R16G16B16_UNORM
): return "FORMAT_R16G16B16_UNORM";
200 case (VK_FORMAT_R16G16B16_SNORM
): return "FORMAT_R16G16B16_SNORM";
201 case (VK_FORMAT_R16G16B16_USCALED
): return "FORMAT_R16G16B16_USCALED";
202 case (VK_FORMAT_R16G16B16_SSCALED
): return "FORMAT_R16G16B16_SSCALED";
203 case (VK_FORMAT_R16G16B16_UINT
): return "FORMAT_R16G16B16_UINT";
204 case (VK_FORMAT_R16G16B16_SINT
): return "FORMAT_R16G16B16_SINT";
205 case (VK_FORMAT_R16G16B16_SFLOAT
): return "FORMAT_R16G16B16_SFLOAT";
206 case (VK_FORMAT_R16G16B16A16_UNORM
): return "FORMAT_R16G16B16A16_UNORM";
207 case (VK_FORMAT_R16G16B16A16_SNORM
): return "FORMAT_R16G16B16A16_SNORM";
208 case (VK_FORMAT_R16G16B16A16_USCALED
): return "FORMAT_R16G16B16A16_USCALED";
209 case (VK_FORMAT_R16G16B16A16_SSCALED
): return "FORMAT_R16G16B16A16_SSCALED";
210 case (VK_FORMAT_R16G16B16A16_UINT
): return "FORMAT_R16G16B16A16_UINT";
211 case (VK_FORMAT_R16G16B16A16_SINT
): return "FORMAT_R16G16B16A16_SINT";
212 case (VK_FORMAT_R16G16B16A16_SFLOAT
): return "FORMAT_R16G16B16A16_SFLOAT";
213 case (VK_FORMAT_R32_UINT
): return "FORMAT_R32_UINT";
214 case (VK_FORMAT_R32_SINT
): return "FORMAT_R32_SINT";
215 case (VK_FORMAT_R32_SFLOAT
): return "FORMAT_R32_SFLOAT";
216 case (VK_FORMAT_R32G32_UINT
): return "FORMAT_R32G32_UINT";
217 case (VK_FORMAT_R32G32_SINT
): return "FORMAT_R32G32_SINT";
218 case (VK_FORMAT_R32G32_SFLOAT
): return "FORMAT_R32G32_SFLOAT";
219 case (VK_FORMAT_R32G32B32_UINT
): return "FORMAT_R32G32B32_UINT";
220 case (VK_FORMAT_R32G32B32_SINT
): return "FORMAT_R32G32B32_SINT";
221 case (VK_FORMAT_R32G32B32_SFLOAT
): return "FORMAT_R32G32B32_SFLOAT";
222 case (VK_FORMAT_R32G32B32A32_UINT
): return "FORMAT_R32G32B32A32_UINT";
223 case (VK_FORMAT_R32G32B32A32_SINT
): return "FORMAT_R32G32B32A32_SINT";
224 case (VK_FORMAT_R32G32B32A32_SFLOAT
): return "FORMAT_R32G32B32A32_SFLOAT";
225 case (VK_FORMAT_R64_UINT
): return "FORMAT_R64_UINT";
226 case (VK_FORMAT_R64_SINT
): return "FORMAT_R64_SINT";
227 case (VK_FORMAT_R64_SFLOAT
): return "FORMAT_R64_SFLOAT";
228 case (VK_FORMAT_R64G64_UINT
): return "FORMAT_R64G64_UINT";
229 case (VK_FORMAT_R64G64_SINT
): return "FORMAT_R64G64_SINT";
230 case (VK_FORMAT_R64G64_SFLOAT
): return "FORMAT_R64G64_SFLOAT";
231 case (VK_FORMAT_R64G64B64_UINT
): return "FORMAT_R64G64B64_UINT";
232 case (VK_FORMAT_R64G64B64_SINT
): return "FORMAT_R64G64B64_SINT";
233 case (VK_FORMAT_R64G64B64_SFLOAT
): return "FORMAT_R64G64B64_SFLOAT";
234 case (VK_FORMAT_R64G64B64A64_UINT
): return "FORMAT_R64G64B64A64_UINT";
235 case (VK_FORMAT_R64G64B64A64_SINT
): return "FORMAT_R64G64B64A64_SINT";
236 case (VK_FORMAT_R64G64B64A64_SFLOAT
): return "FORMAT_R64G64B64A64_SFLOAT";
237 case (VK_FORMAT_B10G11R11_UFLOAT_PACK32
): return "FORMAT_B10G11R11_UFLOAT_PACK32";
238 case (VK_FORMAT_E5B9G9R9_UFLOAT_PACK32
): return "FORMAT_E5B9G9R9_UFLOAT_PACK32";
239 case (VK_FORMAT_D16_UNORM
): return "FORMAT_D16_UNORM";
240 case (VK_FORMAT_X8_D24_UNORM_PACK32
): return "FORMAT_X8_D24_UNORM_PACK32";
241 case (VK_FORMAT_D32_SFLOAT
): return "FORMAT_D32_SFLOAT";
242 case (VK_FORMAT_S8_UINT
): return "FORMAT_S8_UINT";
243 case (VK_FORMAT_D16_UNORM_S8_UINT
): return "FORMAT_D16_UNORM_S8_UINT";
244 case (VK_FORMAT_D24_UNORM_S8_UINT
): return "FORMAT_D24_UNORM_S8_UINT";
245 case (VK_FORMAT_D32_SFLOAT_S8_UINT
): return "FORMAT_D32_SFLOAT_S8_UINT";
246 case (VK_FORMAT_BC1_RGB_UNORM_BLOCK
): return "FORMAT_BC1_RGB_UNORM_BLOCK";
247 case (VK_FORMAT_BC1_RGB_SRGB_BLOCK
): return "FORMAT_BC1_RGB_SRGB_BLOCK";
248 case (VK_FORMAT_BC1_RGBA_UNORM_BLOCK
): return "FORMAT_BC1_RGBA_UNORM_BLOCK";
249 case (VK_FORMAT_BC1_RGBA_SRGB_BLOCK
): return "FORMAT_BC1_RGBA_SRGB_BLOCK";
250 case (VK_FORMAT_BC2_UNORM_BLOCK
): return "FORMAT_BC2_UNORM_BLOCK";
251 case (VK_FORMAT_BC2_SRGB_BLOCK
): return "FORMAT_BC2_SRGB_BLOCK";
252 case (VK_FORMAT_BC3_UNORM_BLOCK
): return "FORMAT_BC3_UNORM_BLOCK";
253 case (VK_FORMAT_BC3_SRGB_BLOCK
): return "FORMAT_BC3_SRGB_BLOCK";
254 case (VK_FORMAT_BC4_UNORM_BLOCK
): return "FORMAT_BC4_UNORM_BLOCK";
255 case (VK_FORMAT_BC4_SNORM_BLOCK
): return "FORMAT_BC4_SNORM_BLOCK";
256 case (VK_FORMAT_BC5_UNORM_BLOCK
): return "FORMAT_BC5_UNORM_BLOCK";
257 case (VK_FORMAT_BC5_SNORM_BLOCK
): return "FORMAT_BC5_SNORM_BLOCK";
258 case (VK_FORMAT_BC6H_UFLOAT_BLOCK
): return "FORMAT_BC6H_UFLOAT_BLOCK";
259 case (VK_FORMAT_BC6H_SFLOAT_BLOCK
): return "FORMAT_BC6H_SFLOAT_BLOCK";
260 case (VK_FORMAT_BC7_UNORM_BLOCK
): return "FORMAT_BC7_UNORM_BLOCK";
261 case (VK_FORMAT_BC7_SRGB_BLOCK
): return "FORMAT_BC7_SRGB_BLOCK";
262 case (VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK
): return "FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
263 case (VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK
): return "FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
264 case (VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
): return "FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
265 case (VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
): return "FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
266 case (VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
): return "FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
267 case (VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
): return "FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
268 case (VK_FORMAT_EAC_R11_UNORM_BLOCK
): return "FORMAT_EAC_R11_UNORM_BLOCK";
269 case (VK_FORMAT_EAC_R11_SNORM_BLOCK
): return "FORMAT_EAC_R11_SNORM_BLOCK";
270 case (VK_FORMAT_EAC_R11G11_UNORM_BLOCK
): return "FORMAT_EAC_R11G11_UNORM_BLOCK";
271 case (VK_FORMAT_EAC_R11G11_SNORM_BLOCK
): return "FORMAT_EAC_R11G11_SNORM_BLOCK";
272 case (VK_FORMAT_ASTC_4x4_UNORM_BLOCK
): return "FORMAT_ASTC_4x4_UNORM_BLOCK";
273 case (VK_FORMAT_ASTC_4x4_SRGB_BLOCK
): return "FORMAT_ASTC_4x4_SRGB_BLOCK";
274 case (VK_FORMAT_ASTC_5x4_UNORM_BLOCK
): return "FORMAT_ASTC_5x4_UNORM_BLOCK";
275 case (VK_FORMAT_ASTC_5x4_SRGB_BLOCK
): return "FORMAT_ASTC_5x4_SRGB_BLOCK";
276 case (VK_FORMAT_ASTC_5x5_UNORM_BLOCK
): return "FORMAT_ASTC_5x5_UNORM_BLOCK";
277 case (VK_FORMAT_ASTC_5x5_SRGB_BLOCK
): return "FORMAT_ASTC_5x5_SRGB_BLOCK";
278 case (VK_FORMAT_ASTC_6x5_UNORM_BLOCK
): return "FORMAT_ASTC_6x5_UNORM_BLOCK";
279 case (VK_FORMAT_ASTC_6x5_SRGB_BLOCK
): return "FORMAT_ASTC_6x5_SRGB_BLOCK";
280 case (VK_FORMAT_ASTC_6x6_UNORM_BLOCK
): return "FORMAT_ASTC_6x6_UNORM_BLOCK";
281 case (VK_FORMAT_ASTC_6x6_SRGB_BLOCK
): return "FORMAT_ASTC_6x6_SRGB_BLOCK";
282 case (VK_FORMAT_ASTC_8x5_UNORM_BLOCK
): return "FORMAT_ASTC_8x5_UNORM_BLOCK";
283 case (VK_FORMAT_ASTC_8x5_SRGB_BLOCK
): return "FORMAT_ASTC_8x5_SRGB_BLOCK";
284 case (VK_FORMAT_ASTC_8x6_UNORM_BLOCK
): return "FORMAT_ASTC_8x6_UNORM_BLOCK";
285 case (VK_FORMAT_ASTC_8x6_SRGB_BLOCK
): return "FORMAT_ASTC_8x6_SRGB_BLOCK";
286 case (VK_FORMAT_ASTC_8x8_UNORM_BLOCK
): return "FORMAT_ASTC_8x8_UNORM_BLOCK";
287 case (VK_FORMAT_ASTC_8x8_SRGB_BLOCK
): return "FORMAT_ASTC_8x8_SRGB_BLOCK";
288 case (VK_FORMAT_ASTC_10x5_UNORM_BLOCK
): return "FORMAT_ASTC_10x5_UNORM_BLOCK";
289 case (VK_FORMAT_ASTC_10x5_SRGB_BLOCK
): return "FORMAT_ASTC_10x5_SRGB_BLOCK";
290 case (VK_FORMAT_ASTC_10x6_UNORM_BLOCK
): return "FORMAT_ASTC_10x6_UNORM_BLOCK";
291 case (VK_FORMAT_ASTC_10x6_SRGB_BLOCK
): return "FORMAT_ASTC_10x6_SRGB_BLOCK";
292 case (VK_FORMAT_ASTC_10x8_UNORM_BLOCK
): return "FORMAT_ASTC_10x8_UNORM_BLOCK";
293 case (VK_FORMAT_ASTC_10x8_SRGB_BLOCK
): return "FORMAT_ASTC_10x8_SRGB_BLOCK";
294 case (VK_FORMAT_ASTC_10x10_UNORM_BLOCK
): return "FORMAT_ASTC_10x10_UNORM_BLOCK";
295 case (VK_FORMAT_ASTC_10x10_SRGB_BLOCK
): return "FORMAT_ASTC_10x10_SRGB_BLOCK";
296 case (VK_FORMAT_ASTC_12x10_UNORM_BLOCK
): return "FORMAT_ASTC_12x10_UNORM_BLOCK";
297 case (VK_FORMAT_ASTC_12x10_SRGB_BLOCK
): return "FORMAT_ASTC_12x10_SRGB_BLOCK";
298 case (VK_FORMAT_ASTC_12x12_UNORM_BLOCK
): return "FORMAT_ASTC_12x12_UNORM_BLOCK";
299 case (VK_FORMAT_ASTC_12x12_SRGB_BLOCK
): return "FORMAT_ASTC_12x12_SRGB_BLOCK";
300 case (VK_FORMAT_G8B8G8R8_422_UNORM
): return "FORMAT_G8B8G8R8_422_UNORM";
301 case (VK_FORMAT_B8G8R8G8_422_UNORM
): return "FORMAT_B8G8R8G8_422_UNORM";
302 case (VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM
): return "FORMAT_G8_B8_R8_3PLANE_420_UNORM";
303 case (VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
): return "FORMAT_G8_B8R8_2PLANE_420_UNORM";
304 case (VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM
): return "FORMAT_G8_B8_R8_3PLANE_422_UNORM";
305 case (VK_FORMAT_G8_B8R8_2PLANE_422_UNORM
): return "FORMAT_G8_B8R8_2PLANE_422_UNORM";
306 case (VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM
): return "FORMAT_G8_B8_R8_3PLANE_444_UNORM";
307 case (VK_FORMAT_R10X6_UNORM_PACK16
): return "FORMAT_R10X6_UNORM_PACK16";
308 case (VK_FORMAT_R10X6G10X6_UNORM_2PACK16
): return "FORMAT_R10X6G10X6_UNORM_2PACK16";
309 case (VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
): return "FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
310 case (VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
): return "FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
311 case (VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
): return "FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
312 case (VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
313 case (VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
314 case (VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
315 case (VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
316 case (VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
317 case (VK_FORMAT_R12X4_UNORM_PACK16
): return "FORMAT_R12X4_UNORM_PACK16";
318 case (VK_FORMAT_R12X4G12X4_UNORM_2PACK16
): return "FORMAT_R12X4G12X4_UNORM_2PACK16";
319 case (VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
): return "FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
320 case (VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
): return "FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
321 case (VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
): return "FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
322 case (VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
323 case (VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
324 case (VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
325 case (VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
326 case (VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
327 case (VK_FORMAT_G16B16G16R16_422_UNORM
): return "FORMAT_G16B16G16R16_422_UNORM";
328 case (VK_FORMAT_B16G16R16G16_422_UNORM
): return "FORMAT_B16G16R16G16_422_UNORM";
329 case (VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM
): return "FORMAT_G16_B16_R16_3PLANE_420_UNORM";
330 case (VK_FORMAT_G16_B16R16_2PLANE_420_UNORM
): return "FORMAT_G16_B16R16_2PLANE_420_UNORM";
331 case (VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM
): return "FORMAT_G16_B16_R16_3PLANE_422_UNORM";
332 case (VK_FORMAT_G16_B16R16_2PLANE_422_UNORM
): return "FORMAT_G16_B16R16_2PLANE_422_UNORM";
333 case (VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM
): return "FORMAT_G16_B16_R16_3PLANE_444_UNORM";
334 case (VK_FORMAT_G8_B8R8_2PLANE_444_UNORM
): return "FORMAT_G8_B8R8_2PLANE_444_UNORM";
335 case (VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16
): return "FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
336 case (VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16
): return "FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
337 case (VK_FORMAT_G16_B16R16_2PLANE_444_UNORM
): return "FORMAT_G16_B16R16_2PLANE_444_UNORM";
338 case (VK_FORMAT_A4R4G4B4_UNORM_PACK16
): return "FORMAT_A4R4G4B4_UNORM_PACK16";
339 case (VK_FORMAT_A4B4G4R4_UNORM_PACK16
): return "FORMAT_A4B4G4R4_UNORM_PACK16";
340 case (VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK
): return "FORMAT_ASTC_4x4_SFLOAT_BLOCK";
341 case (VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK
): return "FORMAT_ASTC_5x4_SFLOAT_BLOCK";
342 case (VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK
): return "FORMAT_ASTC_5x5_SFLOAT_BLOCK";
343 case (VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK
): return "FORMAT_ASTC_6x5_SFLOAT_BLOCK";
344 case (VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK
): return "FORMAT_ASTC_6x6_SFLOAT_BLOCK";
345 case (VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK
): return "FORMAT_ASTC_8x5_SFLOAT_BLOCK";
346 case (VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK
): return "FORMAT_ASTC_8x6_SFLOAT_BLOCK";
347 case (VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK
): return "FORMAT_ASTC_8x8_SFLOAT_BLOCK";
348 case (VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK
): return "FORMAT_ASTC_10x5_SFLOAT_BLOCK";
349 case (VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK
): return "FORMAT_ASTC_10x6_SFLOAT_BLOCK";
350 case (VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK
): return "FORMAT_ASTC_10x8_SFLOAT_BLOCK";
351 case (VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK
): return "FORMAT_ASTC_10x10_SFLOAT_BLOCK";
352 case (VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK
): return "FORMAT_ASTC_12x10_SFLOAT_BLOCK";
353 case (VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK
): return "FORMAT_ASTC_12x12_SFLOAT_BLOCK";
354 case (VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG
): return "FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
355 case (VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG
): return "FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
356 case (VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG
): return "FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
357 case (VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG
): return "FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
358 case (VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG
): return "FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
359 case (VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG
): return "FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
360 case (VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG
): return "FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
361 case (VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG
): return "FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
362 case (VK_FORMAT_R16G16_SFIXED5_NV
): return "FORMAT_R16G16_SFIXED5_NV";
363 case (VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR
): return "FORMAT_A1B5G5R5_UNORM_PACK16_KHR";
364 case (VK_FORMAT_A8_UNORM_KHR
): return "FORMAT_A8_UNORM_KHR";
365 default: return std::string("UNKNOWN_VkFormat_value") + std::to_string(value
);
368 void DumpVkFormat(Printer
&p
, std::string name
, VkFormat value
) {
369 if (p
.Type() == OutputType::json
)
370 p
.PrintKeyString(name
, std::string("VK_") + VkFormatString(value
));
372 p
.PrintKeyString(name
, VkFormatString(value
));
374 std::string
VkImageLayoutString(VkImageLayout value
) {
376 case (VK_IMAGE_LAYOUT_UNDEFINED
): return "IMAGE_LAYOUT_UNDEFINED";
377 case (VK_IMAGE_LAYOUT_GENERAL
): return "IMAGE_LAYOUT_GENERAL";
378 case (VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
379 case (VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
380 case (VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
381 case (VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
382 case (VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
): return "IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
383 case (VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
): return "IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
384 case (VK_IMAGE_LAYOUT_PREINITIALIZED
): return "IMAGE_LAYOUT_PREINITIALIZED";
385 case (VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
386 case (VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
387 case (VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
388 case (VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
389 case (VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
390 case (VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
391 case (VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL
): return "IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
392 case (VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
): return "IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
393 case (VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
): return "IMAGE_LAYOUT_PRESENT_SRC_KHR";
394 case (VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR
): return "IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
395 case (VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR
): return "IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
396 case (VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR
): return "IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
397 case (VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR
): return "IMAGE_LAYOUT_SHARED_PRESENT_KHR";
398 case (VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
): return "IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
399 case (VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
): return "IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
400 case (VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
): return "IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR";
401 case (VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR
): return "IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
402 case (VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR
): return "IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
403 case (VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR
): return "IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
404 case (VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
): return "IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT";
405 default: return std::string("UNKNOWN_VkImageLayout_value") + std::to_string(value
);
408 void DumpVkImageLayout(Printer
&p
, std::string name
, VkImageLayout value
) {
409 if (p
.Type() == OutputType::json
)
410 p
.PrintKeyString(name
, std::string("VK_") + VkImageLayoutString(value
));
412 p
.PrintKeyString(name
, VkImageLayoutString(value
));
414 std::string
VkImageTilingString(VkImageTiling value
) {
416 case (VK_IMAGE_TILING_OPTIMAL
): return "IMAGE_TILING_OPTIMAL";
417 case (VK_IMAGE_TILING_LINEAR
): return "IMAGE_TILING_LINEAR";
418 case (VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
): return "IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
419 default: return std::string("UNKNOWN_VkImageTiling_value") + std::to_string(value
);
422 void DumpVkImageTiling(Printer
&p
, std::string name
, VkImageTiling value
) {
423 if (p
.Type() == OutputType::json
)
424 p
.PrintKeyString(name
, std::string("VK_") + VkImageTilingString(value
));
426 p
.PrintKeyString(name
, VkImageTilingString(value
));
428 std::string
VkPhysicalDeviceLayeredApiKHRString(VkPhysicalDeviceLayeredApiKHR value
) {
430 case (VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR";
431 case (VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR";
432 case (VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_METAL_KHR";
433 case (VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR";
434 case (VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR
): return "PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR";
435 default: return std::string("UNKNOWN_VkPhysicalDeviceLayeredApiKHR_value") + std::to_string(value
);
438 void DumpVkPhysicalDeviceLayeredApiKHR(Printer
&p
, std::string name
, VkPhysicalDeviceLayeredApiKHR value
) {
439 if (p
.Type() == OutputType::json
)
440 p
.PrintKeyString(name
, std::string("VK_") + VkPhysicalDeviceLayeredApiKHRString(value
));
442 p
.PrintKeyString(name
, VkPhysicalDeviceLayeredApiKHRString(value
));
444 std::string
VkPhysicalDeviceTypeString(VkPhysicalDeviceType value
) {
446 case (VK_PHYSICAL_DEVICE_TYPE_OTHER
): return "PHYSICAL_DEVICE_TYPE_OTHER";
447 case (VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
): return "PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
448 case (VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
): return "PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
449 case (VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
): return "PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
450 case (VK_PHYSICAL_DEVICE_TYPE_CPU
): return "PHYSICAL_DEVICE_TYPE_CPU";
451 default: return std::string("UNKNOWN_VkPhysicalDeviceType_value") + std::to_string(value
);
454 void DumpVkPhysicalDeviceType(Printer
&p
, std::string name
, VkPhysicalDeviceType value
) {
455 if (p
.Type() == OutputType::json
)
456 p
.PrintKeyString(name
, std::string("VK_") + VkPhysicalDeviceTypeString(value
));
458 p
.PrintKeyString(name
, VkPhysicalDeviceTypeString(value
));
460 std::string
VkPipelineRobustnessBufferBehaviorEXTString(VkPipelineRobustnessBufferBehaviorEXT value
) {
462 case (VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT
): return "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT";
463 case (VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
): return "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT";
464 case (VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT
): return "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT";
465 case (VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
): return "PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT";
466 default: return std::string("UNKNOWN_VkPipelineRobustnessBufferBehaviorEXT_value") + std::to_string(value
);
469 void DumpVkPipelineRobustnessBufferBehaviorEXT(Printer
&p
, std::string name
, VkPipelineRobustnessBufferBehaviorEXT value
) {
470 if (p
.Type() == OutputType::json
)
471 p
.PrintKeyString(name
, std::string("VK_") + VkPipelineRobustnessBufferBehaviorEXTString(value
));
473 p
.PrintKeyString(name
, VkPipelineRobustnessBufferBehaviorEXTString(value
));
475 std::string
VkPipelineRobustnessImageBehaviorEXTString(VkPipelineRobustnessImageBehaviorEXT value
) {
477 case (VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT
): return "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT";
478 case (VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT
): return "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT";
479 case (VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT
): return "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT";
480 case (VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT
): return "PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT";
481 default: return std::string("UNKNOWN_VkPipelineRobustnessImageBehaviorEXT_value") + std::to_string(value
);
484 void DumpVkPipelineRobustnessImageBehaviorEXT(Printer
&p
, std::string name
, VkPipelineRobustnessImageBehaviorEXT value
) {
485 if (p
.Type() == OutputType::json
)
486 p
.PrintKeyString(name
, std::string("VK_") + VkPipelineRobustnessImageBehaviorEXTString(value
));
488 p
.PrintKeyString(name
, VkPipelineRobustnessImageBehaviorEXTString(value
));
490 std::string
VkPointClippingBehaviorString(VkPointClippingBehavior value
) {
492 case (VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
): return "POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
493 case (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
): return "POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
494 default: return std::string("UNKNOWN_VkPointClippingBehavior_value") + std::to_string(value
);
497 void DumpVkPointClippingBehavior(Printer
&p
, std::string name
, VkPointClippingBehavior value
) {
498 if (p
.Type() == OutputType::json
)
499 p
.PrintKeyString(name
, std::string("VK_") + VkPointClippingBehaviorString(value
));
501 p
.PrintKeyString(name
, VkPointClippingBehaviorString(value
));
503 std::string
VkPresentModeKHRString(VkPresentModeKHR value
) {
505 case (VK_PRESENT_MODE_IMMEDIATE_KHR
): return "PRESENT_MODE_IMMEDIATE_KHR";
506 case (VK_PRESENT_MODE_MAILBOX_KHR
): return "PRESENT_MODE_MAILBOX_KHR";
507 case (VK_PRESENT_MODE_FIFO_KHR
): return "PRESENT_MODE_FIFO_KHR";
508 case (VK_PRESENT_MODE_FIFO_RELAXED_KHR
): return "PRESENT_MODE_FIFO_RELAXED_KHR";
509 case (VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR
): return "PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
510 case (VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
): return "PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
511 case (VK_PRESENT_MODE_FIFO_LATEST_READY_EXT
): return "PRESENT_MODE_FIFO_LATEST_READY_EXT";
512 default: return std::string("UNKNOWN_VkPresentModeKHR_value") + std::to_string(value
);
515 void DumpVkPresentModeKHR(Printer
&p
, std::string name
, VkPresentModeKHR value
) {
516 if (p
.Type() == OutputType::json
)
517 p
.PrintKeyString(name
, std::string("VK_") + VkPresentModeKHRString(value
));
519 p
.PrintKeyString(name
, VkPresentModeKHRString(value
));
521 std::string
VkQueueGlobalPriorityKHRString(VkQueueGlobalPriorityKHR value
) {
523 case (VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR
): return "QUEUE_GLOBAL_PRIORITY_LOW_KHR";
524 case (VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
): return "QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR";
525 case (VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR
): return "QUEUE_GLOBAL_PRIORITY_HIGH_KHR";
526 case (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR
): return "QUEUE_GLOBAL_PRIORITY_REALTIME_KHR";
527 default: return std::string("UNKNOWN_VkQueueGlobalPriorityKHR_value") + std::to_string(value
);
530 void DumpVkQueueGlobalPriorityKHR(Printer
&p
, std::string name
, VkQueueGlobalPriorityKHR value
) {
531 if (p
.Type() == OutputType::json
)
532 p
.PrintKeyString(name
, std::string("VK_") + VkQueueGlobalPriorityKHRString(value
));
534 p
.PrintKeyString(name
, VkQueueGlobalPriorityKHRString(value
));
536 std::string
VkResultString(VkResult value
) {
538 case (VK_SUCCESS
): return "SUCCESS";
539 case (VK_NOT_READY
): return "NOT_READY";
540 case (VK_TIMEOUT
): return "TIMEOUT";
541 case (VK_EVENT_SET
): return "EVENT_SET";
542 case (VK_EVENT_RESET
): return "EVENT_RESET";
543 case (VK_INCOMPLETE
): return "INCOMPLETE";
544 case (VK_ERROR_OUT_OF_HOST_MEMORY
): return "ERROR_OUT_OF_HOST_MEMORY";
545 case (VK_ERROR_OUT_OF_DEVICE_MEMORY
): return "ERROR_OUT_OF_DEVICE_MEMORY";
546 case (VK_ERROR_INITIALIZATION_FAILED
): return "ERROR_INITIALIZATION_FAILED";
547 case (VK_ERROR_DEVICE_LOST
): return "ERROR_DEVICE_LOST";
548 case (VK_ERROR_MEMORY_MAP_FAILED
): return "ERROR_MEMORY_MAP_FAILED";
549 case (VK_ERROR_LAYER_NOT_PRESENT
): return "ERROR_LAYER_NOT_PRESENT";
550 case (VK_ERROR_EXTENSION_NOT_PRESENT
): return "ERROR_EXTENSION_NOT_PRESENT";
551 case (VK_ERROR_FEATURE_NOT_PRESENT
): return "ERROR_FEATURE_NOT_PRESENT";
552 case (VK_ERROR_INCOMPATIBLE_DRIVER
): return "ERROR_INCOMPATIBLE_DRIVER";
553 case (VK_ERROR_TOO_MANY_OBJECTS
): return "ERROR_TOO_MANY_OBJECTS";
554 case (VK_ERROR_FORMAT_NOT_SUPPORTED
): return "ERROR_FORMAT_NOT_SUPPORTED";
555 case (VK_ERROR_FRAGMENTED_POOL
): return "ERROR_FRAGMENTED_POOL";
556 case (VK_ERROR_UNKNOWN
): return "ERROR_UNKNOWN";
557 case (VK_ERROR_OUT_OF_POOL_MEMORY
): return "ERROR_OUT_OF_POOL_MEMORY";
558 case (VK_ERROR_INVALID_EXTERNAL_HANDLE
): return "ERROR_INVALID_EXTERNAL_HANDLE";
559 case (VK_ERROR_FRAGMENTATION
): return "ERROR_FRAGMENTATION";
560 case (VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS
): return "ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
561 case (VK_PIPELINE_COMPILE_REQUIRED
): return "PIPELINE_COMPILE_REQUIRED";
562 case (VK_ERROR_SURFACE_LOST_KHR
): return "ERROR_SURFACE_LOST_KHR";
563 case (VK_ERROR_NATIVE_WINDOW_IN_USE_KHR
): return "ERROR_NATIVE_WINDOW_IN_USE_KHR";
564 case (VK_SUBOPTIMAL_KHR
): return "SUBOPTIMAL_KHR";
565 case (VK_ERROR_OUT_OF_DATE_KHR
): return "ERROR_OUT_OF_DATE_KHR";
566 case (VK_ERROR_INCOMPATIBLE_DISPLAY_KHR
): return "ERROR_INCOMPATIBLE_DISPLAY_KHR";
567 case (VK_ERROR_VALIDATION_FAILED_EXT
): return "ERROR_VALIDATION_FAILED_EXT";
568 case (VK_ERROR_INVALID_SHADER_NV
): return "ERROR_INVALID_SHADER_NV";
569 case (VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR
): return "ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
570 case (VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
571 case (VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
572 case (VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
573 case (VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
574 case (VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR
): return "ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
575 case (VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT
): return "ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
576 case (VK_ERROR_NOT_PERMITTED_KHR
): return "ERROR_NOT_PERMITTED_KHR";
577 case (VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
): return "ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
578 case (VK_THREAD_IDLE_KHR
): return "THREAD_IDLE_KHR";
579 case (VK_THREAD_DONE_KHR
): return "THREAD_DONE_KHR";
580 case (VK_OPERATION_DEFERRED_KHR
): return "OPERATION_DEFERRED_KHR";
581 case (VK_OPERATION_NOT_DEFERRED_KHR
): return "OPERATION_NOT_DEFERRED_KHR";
582 case (VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR
): return "ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR";
583 case (VK_ERROR_COMPRESSION_EXHAUSTED_EXT
): return "ERROR_COMPRESSION_EXHAUSTED_EXT";
584 case (VK_INCOMPATIBLE_SHADER_BINARY_EXT
): return "INCOMPATIBLE_SHADER_BINARY_EXT";
585 case (VK_PIPELINE_BINARY_MISSING_KHR
): return "PIPELINE_BINARY_MISSING_KHR";
586 case (VK_ERROR_NOT_ENOUGH_SPACE_KHR
): return "ERROR_NOT_ENOUGH_SPACE_KHR";
587 default: return std::string("UNKNOWN_VkResult_value") + std::to_string(value
);
590 void DumpVkResult(Printer
&p
, std::string name
, VkResult value
) {
591 if (p
.Type() == OutputType::json
)
592 p
.PrintKeyString(name
, std::string("VK_") + VkResultString(value
));
594 p
.PrintKeyString(name
, VkResultString(value
));
596 std::string
VkShaderFloatControlsIndependenceString(VkShaderFloatControlsIndependence value
) {
598 case (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
): return "SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
599 case (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
): return "SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
600 case (VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
): return "SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
601 default: return std::string("UNKNOWN_VkShaderFloatControlsIndependence_value") + std::to_string(value
);
604 void DumpVkShaderFloatControlsIndependence(Printer
&p
, std::string name
, VkShaderFloatControlsIndependence value
) {
605 if (p
.Type() == OutputType::json
)
606 p
.PrintKeyString(name
, std::string("VK_") + VkShaderFloatControlsIndependenceString(value
));
608 p
.PrintKeyString(name
, VkShaderFloatControlsIndependenceString(value
));
610 std::vector
<const char *> VkCompositeAlphaFlagBitsKHRGetStrings(VkCompositeAlphaFlagBitsKHR value
) {
611 std::vector
<const char *> strings
;
612 if (value
== 0) { strings
.push_back("None"); return strings
; }
613 if (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
& value
) strings
.push_back("COMPOSITE_ALPHA_OPAQUE_BIT_KHR");
614 if (VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
& value
) strings
.push_back("COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR");
615 if (VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR
& value
) strings
.push_back("COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR");
616 if (VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR
& value
) strings
.push_back("COMPOSITE_ALPHA_INHERIT_BIT_KHR");
619 void DumpVkCompositeAlphaFlagsKHR(Printer
&p
, std::string name
, VkCompositeAlphaFlagsKHR value
) {
620 if (static_cast<VkCompositeAlphaFlagBitsKHR
>(value
) == 0) {
621 ArrayWrapper
arr(p
, name
, 0);
622 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
623 p
.SetAsType().PrintString("None");
626 auto strings
= VkCompositeAlphaFlagBitsKHRGetStrings(static_cast<VkCompositeAlphaFlagBitsKHR
>(value
));
627 ArrayWrapper
arr(p
, name
, strings
.size());
628 for(auto& str
: strings
){
629 if (p
.Type() == OutputType::json
)
630 p
.SetAsType().PrintString(std::string("VK_") + str
);
632 p
.SetAsType().PrintString(str
);
635 void DumpVkCompositeAlphaFlagBitsKHR(Printer
&p
, std::string name
, VkCompositeAlphaFlagBitsKHR value
) {
636 auto strings
= VkCompositeAlphaFlagBitsKHRGetStrings(value
);
637 if (strings
.size() > 0) {
638 if (p
.Type() == OutputType::json
)
639 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
641 p
.PrintKeyString(name
, strings
.at(0));
645 std::vector
<const char *> VkDeviceGroupPresentModeFlagBitsKHRGetStrings(VkDeviceGroupPresentModeFlagBitsKHR value
) {
646 std::vector
<const char *> strings
;
647 if (value
== 0) { strings
.push_back("None"); return strings
; }
648 if (VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
& value
) strings
.push_back("DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR");
649 if (VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR
& value
) strings
.push_back("DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR");
650 if (VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR
& value
) strings
.push_back("DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR");
651 if (VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR
& value
) strings
.push_back("DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR");
654 void DumpVkDeviceGroupPresentModeFlagsKHR(Printer
&p
, std::string name
, VkDeviceGroupPresentModeFlagsKHR value
) {
655 if (static_cast<VkDeviceGroupPresentModeFlagBitsKHR
>(value
) == 0) {
656 ArrayWrapper
arr(p
, name
, 0);
657 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
658 p
.SetAsType().PrintString("None");
661 auto strings
= VkDeviceGroupPresentModeFlagBitsKHRGetStrings(static_cast<VkDeviceGroupPresentModeFlagBitsKHR
>(value
));
662 ArrayWrapper
arr(p
, name
, strings
.size());
663 for(auto& str
: strings
){
664 if (p
.Type() == OutputType::json
)
665 p
.SetAsType().PrintString(std::string("VK_") + str
);
667 p
.SetAsType().PrintString(str
);
670 void DumpVkDeviceGroupPresentModeFlagBitsKHR(Printer
&p
, std::string name
, VkDeviceGroupPresentModeFlagBitsKHR value
) {
671 auto strings
= VkDeviceGroupPresentModeFlagBitsKHRGetStrings(value
);
672 if (strings
.size() > 0) {
673 if (p
.Type() == OutputType::json
)
674 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
676 p
.PrintKeyString(name
, strings
.at(0));
680 std::vector
<const char *> VkFormatFeatureFlagBitsGetStrings(VkFormatFeatureFlagBits value
) {
681 std::vector
<const char *> strings
;
682 if (value
== 0) { strings
.push_back("None"); return strings
; }
683 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_BIT");
684 if (VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_STORAGE_IMAGE_BIT");
685 if (VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT");
686 if (VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT");
687 if (VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT");
688 if (VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT");
689 if (VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_VERTEX_BUFFER_BIT");
690 if (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_COLOR_ATTACHMENT_BIT");
691 if (VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
& value
) strings
.push_back("FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT");
692 if (VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT");
693 if (VK_FORMAT_FEATURE_BLIT_SRC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_BLIT_SRC_BIT");
694 if (VK_FORMAT_FEATURE_BLIT_DST_BIT
& value
) strings
.push_back("FORMAT_FEATURE_BLIT_DST_BIT");
695 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT");
696 if (VK_FORMAT_FEATURE_TRANSFER_SRC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_TRANSFER_SRC_BIT");
697 if (VK_FORMAT_FEATURE_TRANSFER_DST_BIT
& value
) strings
.push_back("FORMAT_FEATURE_TRANSFER_DST_BIT");
698 if (VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT
& value
) strings
.push_back("FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT");
699 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT");
700 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");
701 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");
702 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");
703 if (VK_FORMAT_FEATURE_DISJOINT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_DISJOINT_BIT");
704 if (VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT
& value
) strings
.push_back("FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT");
705 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT");
706 if (VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR");
707 if (VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR");
708 if (VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR");
709 if (VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT
& value
) strings
.push_back("FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT");
710 if (VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT
& value
) strings
.push_back("FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT");
711 if (VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR");
712 if (VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR");
713 if (VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR");
716 void DumpVkFormatFeatureFlags(Printer
&p
, std::string name
, VkFormatFeatureFlags value
) {
717 if (static_cast<VkFormatFeatureFlagBits
>(value
) == 0) {
718 ArrayWrapper
arr(p
, name
, 0);
719 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
720 p
.SetAsType().PrintString("None");
723 auto strings
= VkFormatFeatureFlagBitsGetStrings(static_cast<VkFormatFeatureFlagBits
>(value
));
724 ArrayWrapper
arr(p
, name
, strings
.size());
725 for(auto& str
: strings
){
726 if (p
.Type() == OutputType::json
)
727 p
.SetAsType().PrintString(std::string("VK_") + str
);
729 p
.SetAsType().PrintString(str
);
732 void DumpVkFormatFeatureFlagBits(Printer
&p
, std::string name
, VkFormatFeatureFlagBits value
) {
733 auto strings
= VkFormatFeatureFlagBitsGetStrings(value
);
734 if (strings
.size() > 0) {
735 if (p
.Type() == OutputType::json
)
736 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
738 p
.PrintKeyString(name
, strings
.at(0));
742 std::vector
<const char *> VkFormatFeatureFlagBits2GetStrings(VkFormatFeatureFlagBits2 value
) {
743 std::vector
<const char *> strings
;
744 if (value
== 0) { strings
.push_back("None"); return strings
; }
745 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT");
746 if (VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_IMAGE_BIT");
747 if (VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT");
748 if (VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT");
749 if (VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT");
750 if (VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT");
751 if (VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_VERTEX_BUFFER_BIT");
752 if (VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT");
753 if (VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT");
754 if (VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT");
755 if (VK_FORMAT_FEATURE_2_BLIT_SRC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_BLIT_SRC_BIT");
756 if (VK_FORMAT_FEATURE_2_BLIT_DST_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_BLIT_DST_BIT");
757 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT");
758 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT");
759 if (VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_TRANSFER_SRC_BIT");
760 if (VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_TRANSFER_DST_BIT");
761 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT");
762 if (VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT");
763 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");
764 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");
765 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");
766 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");
767 if (VK_FORMAT_FEATURE_2_DISJOINT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_DISJOINT_BIT");
768 if (VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT");
769 if (VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT");
770 if (VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT");
771 if (VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT
& value
) strings
.push_back("FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT");
772 if (VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR");
773 if (VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR");
774 if (VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR");
775 if (VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT
& value
) strings
.push_back("FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT");
776 if (VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR");
777 if (VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT
& value
) strings
.push_back("FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT");
778 if (VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR");
779 if (VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR
& value
) strings
.push_back("FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR");
780 if (VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
& value
) strings
.push_back("FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV");
781 if (VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM
& value
) strings
.push_back("FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM");
782 if (VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM
& value
) strings
.push_back("FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM");
783 if (VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM
& value
) strings
.push_back("FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM");
784 if (VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM
& value
) strings
.push_back("FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM");
785 if (VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV
& value
) strings
.push_back("FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV");
786 if (VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV
& value
) strings
.push_back("FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV");
787 if (VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV
& value
) strings
.push_back("FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV");
790 void DumpVkFormatFeatureFlags2(Printer
&p
, std::string name
, VkFormatFeatureFlags2 value
) {
791 if (static_cast<VkFormatFeatureFlagBits2
>(value
) == 0) {
792 ArrayWrapper
arr(p
, name
, 0);
793 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
794 p
.SetAsType().PrintString("None");
797 auto strings
= VkFormatFeatureFlagBits2GetStrings(static_cast<VkFormatFeatureFlagBits2
>(value
));
798 ArrayWrapper
arr(p
, name
, strings
.size());
799 for(auto& str
: strings
){
800 if (p
.Type() == OutputType::json
)
801 p
.SetAsType().PrintString(std::string("VK_") + str
);
803 p
.SetAsType().PrintString(str
);
806 void DumpVkFormatFeatureFlagBits2(Printer
&p
, std::string name
, VkFormatFeatureFlagBits2 value
) {
807 auto strings
= VkFormatFeatureFlagBits2GetStrings(value
);
808 if (strings
.size() > 0) {
809 if (p
.Type() == OutputType::json
)
810 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
812 p
.PrintKeyString(name
, strings
.at(0));
816 std::vector
<const char *> VkImageUsageFlagBitsGetStrings(VkImageUsageFlagBits value
) {
817 std::vector
<const char *> strings
;
818 if (value
== 0) { strings
.push_back("None"); return strings
; }
819 if (VK_IMAGE_USAGE_TRANSFER_SRC_BIT
& value
) strings
.push_back("IMAGE_USAGE_TRANSFER_SRC_BIT");
820 if (VK_IMAGE_USAGE_TRANSFER_DST_BIT
& value
) strings
.push_back("IMAGE_USAGE_TRANSFER_DST_BIT");
821 if (VK_IMAGE_USAGE_SAMPLED_BIT
& value
) strings
.push_back("IMAGE_USAGE_SAMPLED_BIT");
822 if (VK_IMAGE_USAGE_STORAGE_BIT
& value
) strings
.push_back("IMAGE_USAGE_STORAGE_BIT");
823 if (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
& value
) strings
.push_back("IMAGE_USAGE_COLOR_ATTACHMENT_BIT");
824 if (VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
& value
) strings
.push_back("IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT");
825 if (VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT
& value
) strings
.push_back("IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT");
826 if (VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
& value
) strings
.push_back("IMAGE_USAGE_INPUT_ATTACHMENT_BIT");
827 if (VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR");
828 if (VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR");
829 if (VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR");
830 if (VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT
& value
) strings
.push_back("IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT");
831 if (VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR");
832 if (VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT
& value
) strings
.push_back("IMAGE_USAGE_HOST_TRANSFER_BIT_EXT");
833 if (VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR");
834 if (VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR");
835 if (VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR
& value
) strings
.push_back("IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR");
836 if (VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
& value
) strings
.push_back("IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT");
837 if (VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI
& value
) strings
.push_back("IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI");
838 if (VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM
& value
) strings
.push_back("IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM");
839 if (VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM
& value
) strings
.push_back("IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM");
842 void DumpVkImageUsageFlags(Printer
&p
, std::string name
, VkImageUsageFlags value
) {
843 if (static_cast<VkImageUsageFlagBits
>(value
) == 0) {
844 ArrayWrapper
arr(p
, name
, 0);
845 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
846 p
.SetAsType().PrintString("None");
849 auto strings
= VkImageUsageFlagBitsGetStrings(static_cast<VkImageUsageFlagBits
>(value
));
850 ArrayWrapper
arr(p
, name
, strings
.size());
851 for(auto& str
: strings
){
852 if (p
.Type() == OutputType::json
)
853 p
.SetAsType().PrintString(std::string("VK_") + str
);
855 p
.SetAsType().PrintString(str
);
858 void DumpVkImageUsageFlagBits(Printer
&p
, std::string name
, VkImageUsageFlagBits value
) {
859 auto strings
= VkImageUsageFlagBitsGetStrings(value
);
860 if (strings
.size() > 0) {
861 if (p
.Type() == OutputType::json
)
862 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
864 p
.PrintKeyString(name
, strings
.at(0));
868 std::vector
<const char *> VkIndirectCommandsInputModeFlagBitsEXTGetStrings(VkIndirectCommandsInputModeFlagBitsEXT value
) {
869 std::vector
<const char *> strings
;
870 if (value
== 0) { strings
.push_back("None"); return strings
; }
871 if (VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT
& value
) strings
.push_back("INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT");
872 if (VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT
& value
) strings
.push_back("INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT");
875 void DumpVkIndirectCommandsInputModeFlagsEXT(Printer
&p
, std::string name
, VkIndirectCommandsInputModeFlagsEXT value
) {
876 if (static_cast<VkIndirectCommandsInputModeFlagBitsEXT
>(value
) == 0) {
877 ArrayWrapper
arr(p
, name
, 0);
878 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
879 p
.SetAsType().PrintString("None");
882 auto strings
= VkIndirectCommandsInputModeFlagBitsEXTGetStrings(static_cast<VkIndirectCommandsInputModeFlagBitsEXT
>(value
));
883 ArrayWrapper
arr(p
, name
, strings
.size());
884 for(auto& str
: strings
){
885 if (p
.Type() == OutputType::json
)
886 p
.SetAsType().PrintString(std::string("VK_") + str
);
888 p
.SetAsType().PrintString(str
);
891 void DumpVkIndirectCommandsInputModeFlagBitsEXT(Printer
&p
, std::string name
, VkIndirectCommandsInputModeFlagBitsEXT value
) {
892 auto strings
= VkIndirectCommandsInputModeFlagBitsEXTGetStrings(value
);
893 if (strings
.size() > 0) {
894 if (p
.Type() == OutputType::json
)
895 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
897 p
.PrintKeyString(name
, strings
.at(0));
901 std::vector
<const char *> VkMemoryHeapFlagBitsGetStrings(VkMemoryHeapFlagBits value
) {
902 std::vector
<const char *> strings
;
903 if (value
== 0) { strings
.push_back("None"); return strings
; }
904 if (VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
& value
) strings
.push_back("MEMORY_HEAP_DEVICE_LOCAL_BIT");
905 if (VK_MEMORY_HEAP_MULTI_INSTANCE_BIT
& value
) strings
.push_back("MEMORY_HEAP_MULTI_INSTANCE_BIT");
908 void DumpVkMemoryHeapFlags(Printer
&p
, std::string name
, VkMemoryHeapFlags value
) {
909 if (static_cast<VkMemoryHeapFlagBits
>(value
) == 0) {
910 ArrayWrapper
arr(p
, name
, 0);
911 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
912 p
.SetAsType().PrintString("None");
915 auto strings
= VkMemoryHeapFlagBitsGetStrings(static_cast<VkMemoryHeapFlagBits
>(value
));
916 ArrayWrapper
arr(p
, name
, strings
.size());
917 for(auto& str
: strings
){
918 if (p
.Type() == OutputType::json
)
919 p
.SetAsType().PrintString(std::string("VK_") + str
);
921 p
.SetAsType().PrintString(str
);
924 void DumpVkMemoryHeapFlagBits(Printer
&p
, std::string name
, VkMemoryHeapFlagBits value
) {
925 auto strings
= VkMemoryHeapFlagBitsGetStrings(value
);
926 if (strings
.size() > 0) {
927 if (p
.Type() == OutputType::json
)
928 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
930 p
.PrintKeyString(name
, strings
.at(0));
934 std::vector
<const char *> VkMemoryPropertyFlagBitsGetStrings(VkMemoryPropertyFlagBits value
) {
935 std::vector
<const char *> strings
;
936 if (value
== 0) { strings
.push_back("None"); return strings
; }
937 if (VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_DEVICE_LOCAL_BIT");
938 if (VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_HOST_VISIBLE_BIT");
939 if (VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_HOST_COHERENT_BIT");
940 if (VK_MEMORY_PROPERTY_HOST_CACHED_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_HOST_CACHED_BIT");
941 if (VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT");
942 if (VK_MEMORY_PROPERTY_PROTECTED_BIT
& value
) strings
.push_back("MEMORY_PROPERTY_PROTECTED_BIT");
943 if (VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
& value
) strings
.push_back("MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD");
944 if (VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
& value
) strings
.push_back("MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD");
945 if (VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV
& value
) strings
.push_back("MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV");
948 void DumpVkMemoryPropertyFlags(Printer
&p
, std::string name
, VkMemoryPropertyFlags value
) {
949 if (static_cast<VkMemoryPropertyFlagBits
>(value
) == 0) {
950 ArrayWrapper
arr(p
, name
, 0);
951 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
952 p
.SetAsType().PrintString("None");
955 auto strings
= VkMemoryPropertyFlagBitsGetStrings(static_cast<VkMemoryPropertyFlagBits
>(value
));
956 ArrayWrapper
arr(p
, name
, strings
.size());
957 for(auto& str
: strings
){
958 if (p
.Type() == OutputType::json
)
959 p
.SetAsType().PrintString(std::string("VK_") + str
);
961 p
.SetAsType().PrintString(str
);
964 void DumpVkMemoryPropertyFlagBits(Printer
&p
, std::string name
, VkMemoryPropertyFlagBits value
) {
965 auto strings
= VkMemoryPropertyFlagBitsGetStrings(value
);
966 if (strings
.size() > 0) {
967 if (p
.Type() == OutputType::json
)
968 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
970 p
.PrintKeyString(name
, strings
.at(0));
974 std::vector
<const char *> VkPresentGravityFlagBitsEXTGetStrings(VkPresentGravityFlagBitsEXT value
) {
975 std::vector
<const char *> strings
;
976 if (value
== 0) { strings
.push_back("None"); return strings
; }
977 if (VK_PRESENT_GRAVITY_MIN_BIT_EXT
& value
) strings
.push_back("PRESENT_GRAVITY_MIN_BIT_EXT");
978 if (VK_PRESENT_GRAVITY_MAX_BIT_EXT
& value
) strings
.push_back("PRESENT_GRAVITY_MAX_BIT_EXT");
979 if (VK_PRESENT_GRAVITY_CENTERED_BIT_EXT
& value
) strings
.push_back("PRESENT_GRAVITY_CENTERED_BIT_EXT");
982 void DumpVkPresentGravityFlagsEXT(Printer
&p
, std::string name
, VkPresentGravityFlagsEXT value
) {
983 if (static_cast<VkPresentGravityFlagBitsEXT
>(value
) == 0) {
984 ArrayWrapper
arr(p
, name
, 0);
985 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
986 p
.SetAsType().PrintString("None");
989 auto strings
= VkPresentGravityFlagBitsEXTGetStrings(static_cast<VkPresentGravityFlagBitsEXT
>(value
));
990 ArrayWrapper
arr(p
, name
, strings
.size());
991 for(auto& str
: strings
){
992 if (p
.Type() == OutputType::json
)
993 p
.SetAsType().PrintString(std::string("VK_") + str
);
995 p
.SetAsType().PrintString(str
);
998 void DumpVkPresentGravityFlagBitsEXT(Printer
&p
, std::string name
, VkPresentGravityFlagBitsEXT value
) {
999 auto strings
= VkPresentGravityFlagBitsEXTGetStrings(value
);
1000 if (strings
.size() > 0) {
1001 if (p
.Type() == OutputType::json
)
1002 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1004 p
.PrintKeyString(name
, strings
.at(0));
1008 std::vector
<const char *> VkPresentScalingFlagBitsEXTGetStrings(VkPresentScalingFlagBitsEXT value
) {
1009 std::vector
<const char *> strings
;
1010 if (value
== 0) { strings
.push_back("None"); return strings
; }
1011 if (VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT
& value
) strings
.push_back("PRESENT_SCALING_ONE_TO_ONE_BIT_EXT");
1012 if (VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT
& value
) strings
.push_back("PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT");
1013 if (VK_PRESENT_SCALING_STRETCH_BIT_EXT
& value
) strings
.push_back("PRESENT_SCALING_STRETCH_BIT_EXT");
1016 void DumpVkPresentScalingFlagsEXT(Printer
&p
, std::string name
, VkPresentScalingFlagsEXT value
) {
1017 if (static_cast<VkPresentScalingFlagBitsEXT
>(value
) == 0) {
1018 ArrayWrapper
arr(p
, name
, 0);
1019 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1020 p
.SetAsType().PrintString("None");
1023 auto strings
= VkPresentScalingFlagBitsEXTGetStrings(static_cast<VkPresentScalingFlagBitsEXT
>(value
));
1024 ArrayWrapper
arr(p
, name
, strings
.size());
1025 for(auto& str
: strings
){
1026 if (p
.Type() == OutputType::json
)
1027 p
.SetAsType().PrintString(std::string("VK_") + str
);
1029 p
.SetAsType().PrintString(str
);
1032 void DumpVkPresentScalingFlagBitsEXT(Printer
&p
, std::string name
, VkPresentScalingFlagBitsEXT value
) {
1033 auto strings
= VkPresentScalingFlagBitsEXTGetStrings(value
);
1034 if (strings
.size() > 0) {
1035 if (p
.Type() == OutputType::json
)
1036 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1038 p
.PrintKeyString(name
, strings
.at(0));
1042 std::vector
<const char *> VkQueueFlagBitsGetStrings(VkQueueFlagBits value
) {
1043 std::vector
<const char *> strings
;
1044 if (value
== 0) { strings
.push_back("None"); return strings
; }
1045 if (VK_QUEUE_GRAPHICS_BIT
& value
) strings
.push_back("QUEUE_GRAPHICS_BIT");
1046 if (VK_QUEUE_COMPUTE_BIT
& value
) strings
.push_back("QUEUE_COMPUTE_BIT");
1047 if (VK_QUEUE_TRANSFER_BIT
& value
) strings
.push_back("QUEUE_TRANSFER_BIT");
1048 if (VK_QUEUE_SPARSE_BINDING_BIT
& value
) strings
.push_back("QUEUE_SPARSE_BINDING_BIT");
1049 if (VK_QUEUE_PROTECTED_BIT
& value
) strings
.push_back("QUEUE_PROTECTED_BIT");
1050 if (VK_QUEUE_VIDEO_DECODE_BIT_KHR
& value
) strings
.push_back("QUEUE_VIDEO_DECODE_BIT_KHR");
1051 if (VK_QUEUE_VIDEO_ENCODE_BIT_KHR
& value
) strings
.push_back("QUEUE_VIDEO_ENCODE_BIT_KHR");
1052 if (VK_QUEUE_OPTICAL_FLOW_BIT_NV
& value
) strings
.push_back("QUEUE_OPTICAL_FLOW_BIT_NV");
1055 void DumpVkQueueFlags(Printer
&p
, std::string name
, VkQueueFlags value
) {
1056 if (static_cast<VkQueueFlagBits
>(value
) == 0) {
1057 ArrayWrapper
arr(p
, name
, 0);
1058 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1059 p
.SetAsType().PrintString("None");
1062 auto strings
= VkQueueFlagBitsGetStrings(static_cast<VkQueueFlagBits
>(value
));
1063 ArrayWrapper
arr(p
, name
, strings
.size());
1064 for(auto& str
: strings
){
1065 if (p
.Type() == OutputType::json
)
1066 p
.SetAsType().PrintString(std::string("VK_") + str
);
1068 p
.SetAsType().PrintString(str
);
1071 void DumpVkQueueFlagBits(Printer
&p
, std::string name
, VkQueueFlagBits value
) {
1072 auto strings
= VkQueueFlagBitsGetStrings(value
);
1073 if (strings
.size() > 0) {
1074 if (p
.Type() == OutputType::json
)
1075 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1077 p
.PrintKeyString(name
, strings
.at(0));
1081 std::string
VkQueueFlagsString(VkQueueFlags value
) {
1083 bool is_first
= true;
1084 if (VK_QUEUE_GRAPHICS_BIT
& value
) {
1085 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1086 out
+= "QUEUE_GRAPHICS_BIT";
1088 if (VK_QUEUE_COMPUTE_BIT
& value
) {
1089 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1090 out
+= "QUEUE_COMPUTE_BIT";
1092 if (VK_QUEUE_TRANSFER_BIT
& value
) {
1093 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1094 out
+= "QUEUE_TRANSFER_BIT";
1096 if (VK_QUEUE_SPARSE_BINDING_BIT
& value
) {
1097 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1098 out
+= "QUEUE_SPARSE_BINDING_BIT";
1100 if (VK_QUEUE_PROTECTED_BIT
& value
) {
1101 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1102 out
+= "QUEUE_PROTECTED_BIT";
1104 if (VK_QUEUE_VIDEO_DECODE_BIT_KHR
& value
) {
1105 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1106 out
+= "QUEUE_VIDEO_DECODE_BIT_KHR";
1108 if (VK_QUEUE_VIDEO_ENCODE_BIT_KHR
& value
) {
1109 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1110 out
+= "QUEUE_VIDEO_ENCODE_BIT_KHR";
1112 if (VK_QUEUE_OPTICAL_FLOW_BIT_NV
& value
) {
1113 if (is_first
) { is_first
= false; } else { out
+= " | "; }
1114 out
+= "QUEUE_OPTICAL_FLOW_BIT_NV";
1118 std::vector
<const char *> VkResolveModeFlagBitsGetStrings(VkResolveModeFlagBits value
) {
1119 std::vector
<const char *> strings
;
1120 if (VK_RESOLVE_MODE_NONE
& value
) strings
.push_back("RESOLVE_MODE_NONE");
1121 if (VK_RESOLVE_MODE_SAMPLE_ZERO_BIT
& value
) strings
.push_back("RESOLVE_MODE_SAMPLE_ZERO_BIT");
1122 if (VK_RESOLVE_MODE_AVERAGE_BIT
& value
) strings
.push_back("RESOLVE_MODE_AVERAGE_BIT");
1123 if (VK_RESOLVE_MODE_MIN_BIT
& value
) strings
.push_back("RESOLVE_MODE_MIN_BIT");
1124 if (VK_RESOLVE_MODE_MAX_BIT
& value
) strings
.push_back("RESOLVE_MODE_MAX_BIT");
1125 if (VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID
& value
) strings
.push_back("RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID");
1128 void DumpVkResolveModeFlags(Printer
&p
, std::string name
, VkResolveModeFlags value
) {
1129 if (static_cast<VkResolveModeFlagBits
>(value
) == 0) {
1130 ArrayWrapper
arr(p
, name
, 0);
1131 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1132 p
.SetAsType().PrintString("None");
1135 auto strings
= VkResolveModeFlagBitsGetStrings(static_cast<VkResolveModeFlagBits
>(value
));
1136 ArrayWrapper
arr(p
, name
, strings
.size());
1137 for(auto& str
: strings
){
1138 if (p
.Type() == OutputType::json
)
1139 p
.SetAsType().PrintString(std::string("VK_") + str
);
1141 p
.SetAsType().PrintString(str
);
1144 void DumpVkResolveModeFlagBits(Printer
&p
, std::string name
, VkResolveModeFlagBits value
) {
1145 auto strings
= VkResolveModeFlagBitsGetStrings(value
);
1146 if (strings
.size() > 0) {
1147 if (p
.Type() == OutputType::json
)
1148 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1150 p
.PrintKeyString(name
, strings
.at(0));
1154 std::vector
<const char *> VkSampleCountFlagBitsGetStrings(VkSampleCountFlagBits value
) {
1155 std::vector
<const char *> strings
;
1156 if (value
== 0) { strings
.push_back("None"); return strings
; }
1157 if (VK_SAMPLE_COUNT_1_BIT
& value
) strings
.push_back("SAMPLE_COUNT_1_BIT");
1158 if (VK_SAMPLE_COUNT_2_BIT
& value
) strings
.push_back("SAMPLE_COUNT_2_BIT");
1159 if (VK_SAMPLE_COUNT_4_BIT
& value
) strings
.push_back("SAMPLE_COUNT_4_BIT");
1160 if (VK_SAMPLE_COUNT_8_BIT
& value
) strings
.push_back("SAMPLE_COUNT_8_BIT");
1161 if (VK_SAMPLE_COUNT_16_BIT
& value
) strings
.push_back("SAMPLE_COUNT_16_BIT");
1162 if (VK_SAMPLE_COUNT_32_BIT
& value
) strings
.push_back("SAMPLE_COUNT_32_BIT");
1163 if (VK_SAMPLE_COUNT_64_BIT
& value
) strings
.push_back("SAMPLE_COUNT_64_BIT");
1166 void DumpVkSampleCountFlags(Printer
&p
, std::string name
, VkSampleCountFlags value
) {
1167 if (static_cast<VkSampleCountFlagBits
>(value
) == 0) {
1168 ArrayWrapper
arr(p
, name
, 0);
1169 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1170 p
.SetAsType().PrintString("None");
1173 auto strings
= VkSampleCountFlagBitsGetStrings(static_cast<VkSampleCountFlagBits
>(value
));
1174 ArrayWrapper
arr(p
, name
, strings
.size());
1175 for(auto& str
: strings
){
1176 if (p
.Type() == OutputType::json
)
1177 p
.SetAsType().PrintString(std::string("VK_") + str
);
1179 p
.SetAsType().PrintString(str
);
1182 void DumpVkSampleCountFlagBits(Printer
&p
, std::string name
, VkSampleCountFlagBits value
) {
1183 auto strings
= VkSampleCountFlagBitsGetStrings(value
);
1184 if (strings
.size() > 0) {
1185 if (p
.Type() == OutputType::json
)
1186 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1188 p
.PrintKeyString(name
, strings
.at(0));
1192 std::vector
<const char *> VkShaderStageFlagBitsGetStrings(VkShaderStageFlagBits value
) {
1193 std::vector
<const char *> strings
;
1194 if (value
== 0) { strings
.push_back("None"); return strings
; }
1195 if (VK_SHADER_STAGE_VERTEX_BIT
& value
) strings
.push_back("SHADER_STAGE_VERTEX_BIT");
1196 if (VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT
& value
) strings
.push_back("SHADER_STAGE_TESSELLATION_CONTROL_BIT");
1197 if (VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT
& value
) strings
.push_back("SHADER_STAGE_TESSELLATION_EVALUATION_BIT");
1198 if (VK_SHADER_STAGE_GEOMETRY_BIT
& value
) strings
.push_back("SHADER_STAGE_GEOMETRY_BIT");
1199 if (VK_SHADER_STAGE_FRAGMENT_BIT
& value
) strings
.push_back("SHADER_STAGE_FRAGMENT_BIT");
1200 if (VK_SHADER_STAGE_COMPUTE_BIT
& value
) strings
.push_back("SHADER_STAGE_COMPUTE_BIT");
1201 if (VK_SHADER_STAGE_RAYGEN_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_RAYGEN_BIT_KHR");
1202 if (VK_SHADER_STAGE_ANY_HIT_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_ANY_HIT_BIT_KHR");
1203 if (VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_CLOSEST_HIT_BIT_KHR");
1204 if (VK_SHADER_STAGE_MISS_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_MISS_BIT_KHR");
1205 if (VK_SHADER_STAGE_INTERSECTION_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_INTERSECTION_BIT_KHR");
1206 if (VK_SHADER_STAGE_CALLABLE_BIT_KHR
& value
) strings
.push_back("SHADER_STAGE_CALLABLE_BIT_KHR");
1207 if (VK_SHADER_STAGE_TASK_BIT_EXT
& value
) strings
.push_back("SHADER_STAGE_TASK_BIT_EXT");
1208 if (VK_SHADER_STAGE_MESH_BIT_EXT
& value
) strings
.push_back("SHADER_STAGE_MESH_BIT_EXT");
1209 if (VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
& value
) strings
.push_back("SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI");
1210 if (VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
& value
) strings
.push_back("SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI");
1213 void DumpVkShaderStageFlags(Printer
&p
, std::string name
, VkShaderStageFlags value
) {
1214 if (static_cast<VkShaderStageFlagBits
>(value
) == 0) {
1215 ArrayWrapper
arr(p
, name
, 0);
1216 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1217 p
.SetAsType().PrintString("None");
1220 auto strings
= VkShaderStageFlagBitsGetStrings(static_cast<VkShaderStageFlagBits
>(value
));
1221 ArrayWrapper
arr(p
, name
, strings
.size());
1222 for(auto& str
: strings
){
1223 if (p
.Type() == OutputType::json
)
1224 p
.SetAsType().PrintString(std::string("VK_") + str
);
1226 p
.SetAsType().PrintString(str
);
1229 void DumpVkShaderStageFlagBits(Printer
&p
, std::string name
, VkShaderStageFlagBits value
) {
1230 auto strings
= VkShaderStageFlagBitsGetStrings(value
);
1231 if (strings
.size() > 0) {
1232 if (p
.Type() == OutputType::json
)
1233 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1235 p
.PrintKeyString(name
, strings
.at(0));
1239 std::vector
<const char *> VkSubgroupFeatureFlagBitsGetStrings(VkSubgroupFeatureFlagBits value
) {
1240 std::vector
<const char *> strings
;
1241 if (value
== 0) { strings
.push_back("None"); return strings
; }
1242 if (VK_SUBGROUP_FEATURE_BASIC_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_BASIC_BIT");
1243 if (VK_SUBGROUP_FEATURE_VOTE_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_VOTE_BIT");
1244 if (VK_SUBGROUP_FEATURE_ARITHMETIC_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_ARITHMETIC_BIT");
1245 if (VK_SUBGROUP_FEATURE_BALLOT_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_BALLOT_BIT");
1246 if (VK_SUBGROUP_FEATURE_SHUFFLE_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_SHUFFLE_BIT");
1247 if (VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT");
1248 if (VK_SUBGROUP_FEATURE_CLUSTERED_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_CLUSTERED_BIT");
1249 if (VK_SUBGROUP_FEATURE_QUAD_BIT
& value
) strings
.push_back("SUBGROUP_FEATURE_QUAD_BIT");
1250 if (VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV
& value
) strings
.push_back("SUBGROUP_FEATURE_PARTITIONED_BIT_NV");
1251 if (VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR
& value
) strings
.push_back("SUBGROUP_FEATURE_ROTATE_BIT_KHR");
1252 if (VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR
& value
) strings
.push_back("SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR");
1255 void DumpVkSubgroupFeatureFlags(Printer
&p
, std::string name
, VkSubgroupFeatureFlags value
) {
1256 if (static_cast<VkSubgroupFeatureFlagBits
>(value
) == 0) {
1257 ArrayWrapper
arr(p
, name
, 0);
1258 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1259 p
.SetAsType().PrintString("None");
1262 auto strings
= VkSubgroupFeatureFlagBitsGetStrings(static_cast<VkSubgroupFeatureFlagBits
>(value
));
1263 ArrayWrapper
arr(p
, name
, strings
.size());
1264 for(auto& str
: strings
){
1265 if (p
.Type() == OutputType::json
)
1266 p
.SetAsType().PrintString(std::string("VK_") + str
);
1268 p
.SetAsType().PrintString(str
);
1271 void DumpVkSubgroupFeatureFlagBits(Printer
&p
, std::string name
, VkSubgroupFeatureFlagBits value
) {
1272 auto strings
= VkSubgroupFeatureFlagBitsGetStrings(value
);
1273 if (strings
.size() > 0) {
1274 if (p
.Type() == OutputType::json
)
1275 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1277 p
.PrintKeyString(name
, strings
.at(0));
1281 std::vector
<const char *> VkSurfaceCounterFlagBitsEXTGetStrings(VkSurfaceCounterFlagBitsEXT value
) {
1282 std::vector
<const char *> strings
;
1283 if (value
== 0) { strings
.push_back("None"); return strings
; }
1284 if (VK_SURFACE_COUNTER_VBLANK_BIT_EXT
& value
) strings
.push_back("SURFACE_COUNTER_VBLANK_BIT_EXT");
1287 void DumpVkSurfaceCounterFlagsEXT(Printer
&p
, std::string name
, VkSurfaceCounterFlagsEXT value
) {
1288 if (static_cast<VkSurfaceCounterFlagBitsEXT
>(value
) == 0) {
1289 ArrayWrapper
arr(p
, name
, 0);
1290 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1291 p
.SetAsType().PrintString("None");
1294 auto strings
= VkSurfaceCounterFlagBitsEXTGetStrings(static_cast<VkSurfaceCounterFlagBitsEXT
>(value
));
1295 ArrayWrapper
arr(p
, name
, strings
.size());
1296 for(auto& str
: strings
){
1297 if (p
.Type() == OutputType::json
)
1298 p
.SetAsType().PrintString(std::string("VK_") + str
);
1300 p
.SetAsType().PrintString(str
);
1303 void DumpVkSurfaceCounterFlagBitsEXT(Printer
&p
, std::string name
, VkSurfaceCounterFlagBitsEXT value
) {
1304 auto strings
= VkSurfaceCounterFlagBitsEXTGetStrings(value
);
1305 if (strings
.size() > 0) {
1306 if (p
.Type() == OutputType::json
)
1307 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1309 p
.PrintKeyString(name
, strings
.at(0));
1313 std::vector
<const char *> VkSurfaceTransformFlagBitsKHRGetStrings(VkSurfaceTransformFlagBitsKHR value
) {
1314 std::vector
<const char *> strings
;
1315 if (value
== 0) { strings
.push_back("None"); return strings
; }
1316 if (VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_IDENTITY_BIT_KHR");
1317 if (VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_ROTATE_90_BIT_KHR");
1318 if (VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_ROTATE_180_BIT_KHR");
1319 if (VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_ROTATE_270_BIT_KHR");
1320 if (VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR");
1321 if (VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR");
1322 if (VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR");
1323 if (VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR");
1324 if (VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR
& value
) strings
.push_back("SURFACE_TRANSFORM_INHERIT_BIT_KHR");
1327 void DumpVkSurfaceTransformFlagsKHR(Printer
&p
, std::string name
, VkSurfaceTransformFlagsKHR value
) {
1328 if (static_cast<VkSurfaceTransformFlagBitsKHR
>(value
) == 0) {
1329 ArrayWrapper
arr(p
, name
, 0);
1330 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1331 p
.SetAsType().PrintString("None");
1334 auto strings
= VkSurfaceTransformFlagBitsKHRGetStrings(static_cast<VkSurfaceTransformFlagBitsKHR
>(value
));
1335 ArrayWrapper
arr(p
, name
, strings
.size());
1336 for(auto& str
: strings
){
1337 if (p
.Type() == OutputType::json
)
1338 p
.SetAsType().PrintString(std::string("VK_") + str
);
1340 p
.SetAsType().PrintString(str
);
1343 void DumpVkSurfaceTransformFlagBitsKHR(Printer
&p
, std::string name
, VkSurfaceTransformFlagBitsKHR value
) {
1344 auto strings
= VkSurfaceTransformFlagBitsKHRGetStrings(value
);
1345 if (strings
.size() > 0) {
1346 if (p
.Type() == OutputType::json
)
1347 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1349 p
.PrintKeyString(name
, strings
.at(0));
1353 std::vector
<const char *> VkToolPurposeFlagBitsGetStrings(VkToolPurposeFlagBits value
) {
1354 std::vector
<const char *> strings
;
1355 if (value
== 0) { strings
.push_back("None"); return strings
; }
1356 if (VK_TOOL_PURPOSE_VALIDATION_BIT
& value
) strings
.push_back("TOOL_PURPOSE_VALIDATION_BIT");
1357 if (VK_TOOL_PURPOSE_PROFILING_BIT
& value
) strings
.push_back("TOOL_PURPOSE_PROFILING_BIT");
1358 if (VK_TOOL_PURPOSE_TRACING_BIT
& value
) strings
.push_back("TOOL_PURPOSE_TRACING_BIT");
1359 if (VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT
& value
) strings
.push_back("TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT");
1360 if (VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT
& value
) strings
.push_back("TOOL_PURPOSE_MODIFYING_FEATURES_BIT");
1361 if (VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT
& value
) strings
.push_back("TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT");
1362 if (VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT
& value
) strings
.push_back("TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT");
1365 void DumpVkToolPurposeFlags(Printer
&p
, std::string name
, VkToolPurposeFlags value
) {
1366 if (static_cast<VkToolPurposeFlagBits
>(value
) == 0) {
1367 ArrayWrapper
arr(p
, name
, 0);
1368 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1369 p
.SetAsType().PrintString("None");
1372 auto strings
= VkToolPurposeFlagBitsGetStrings(static_cast<VkToolPurposeFlagBits
>(value
));
1373 ArrayWrapper
arr(p
, name
, strings
.size());
1374 for(auto& str
: strings
){
1375 if (p
.Type() == OutputType::json
)
1376 p
.SetAsType().PrintString(std::string("VK_") + str
);
1378 p
.SetAsType().PrintString(str
);
1381 void DumpVkToolPurposeFlagBits(Printer
&p
, std::string name
, VkToolPurposeFlagBits value
) {
1382 auto strings
= VkToolPurposeFlagBitsGetStrings(value
);
1383 if (strings
.size() > 0) {
1384 if (p
.Type() == OutputType::json
)
1385 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1387 p
.PrintKeyString(name
, strings
.at(0));
1391 std::vector
<const char *> VkVideoCodecOperationFlagBitsKHRGetStrings(VkVideoCodecOperationFlagBitsKHR value
) {
1392 std::vector
<const char *> strings
;
1393 if (VK_VIDEO_CODEC_OPERATION_NONE_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_NONE_KHR");
1394 if (VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR");
1395 if (VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR");
1396 if (VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR");
1397 if (VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR");
1398 if (VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR
& value
) strings
.push_back("VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR");
1401 void DumpVkVideoCodecOperationFlagsKHR(Printer
&p
, std::string name
, VkVideoCodecOperationFlagsKHR value
) {
1402 if (static_cast<VkVideoCodecOperationFlagBitsKHR
>(value
) == 0) {
1403 ArrayWrapper
arr(p
, name
, 0);
1404 if (p
.Type() != OutputType::json
&& p
.Type() != OutputType::vkconfig_output
)
1405 p
.SetAsType().PrintString("None");
1408 auto strings
= VkVideoCodecOperationFlagBitsKHRGetStrings(static_cast<VkVideoCodecOperationFlagBitsKHR
>(value
));
1409 ArrayWrapper
arr(p
, name
, strings
.size());
1410 for(auto& str
: strings
){
1411 if (p
.Type() == OutputType::json
)
1412 p
.SetAsType().PrintString(std::string("VK_") + str
);
1414 p
.SetAsType().PrintString(str
);
1417 void DumpVkVideoCodecOperationFlagBitsKHR(Printer
&p
, std::string name
, VkVideoCodecOperationFlagBitsKHR value
) {
1418 auto strings
= VkVideoCodecOperationFlagBitsKHRGetStrings(value
);
1419 if (strings
.size() > 0) {
1420 if (p
.Type() == OutputType::json
)
1421 p
.PrintKeyString(name
, std::string("VK_") + strings
.at(0));
1423 p
.PrintKeyString(name
, strings
.at(0));
1427 void DumpVkConformanceVersion(Printer
&p
, std::string name
, const VkConformanceVersion
&obj
) {
1428 ObjectWrapper object
{p
, name
};
1429 p
.SetMinKeyWidth(8);
1430 p
.PrintKeyValue("major", static_cast<uint32_t>(obj
.major
));
1431 p
.PrintKeyValue("minor", static_cast<uint32_t>(obj
.minor
));
1432 p
.PrintKeyValue("subminor", static_cast<uint32_t>(obj
.subminor
));
1433 p
.PrintKeyValue("patch", static_cast<uint32_t>(obj
.patch
));
1435 void DumpVkDrmFormatModifierProperties2EXT(Printer
&p
, std::string name
, const VkDrmFormatModifierProperties2EXT
&obj
) {
1436 ObjectWrapper object
{p
, name
};
1437 p
.SetMinKeyWidth(27);
1438 p
.PrintKeyValue("drmFormatModifier", obj
.drmFormatModifier
);
1439 p
.PrintKeyValue("drmFormatModifierPlaneCount", obj
.drmFormatModifierPlaneCount
);
1441 DumpVkFormatFeatureFlags2(p
, "drmFormatModifierTilingFeatures", obj
.drmFormatModifierTilingFeatures
);
1443 void DumpVkExtent2D(Printer
&p
, std::string name
, const VkExtent2D
&obj
) {
1444 ObjectWrapper object
{p
, name
};
1445 p
.SetMinKeyWidth(6);
1446 p
.PrintKeyValue("width", obj
.width
);
1447 p
.PrintKeyValue("height", obj
.height
);
1449 void DumpVkExtent3D(Printer
&p
, std::string name
, const VkExtent3D
&obj
) {
1450 ObjectWrapper object
{p
, name
};
1451 p
.SetMinKeyWidth(6);
1452 p
.PrintKeyValue("width", obj
.width
);
1453 p
.PrintKeyValue("height", obj
.height
);
1454 p
.PrintKeyValue("depth", obj
.depth
);
1456 void DumpVkFormatProperties(Printer
&p
, std::string name
, const VkFormatProperties
&obj
) {
1457 ObjectWrapper object
{p
, name
};
1459 DumpVkFormatFeatureFlags(p
, "linearTilingFeatures", obj
.linearTilingFeatures
);
1461 DumpVkFormatFeatureFlags(p
, "optimalTilingFeatures", obj
.optimalTilingFeatures
);
1463 DumpVkFormatFeatureFlags(p
, "bufferFeatures", obj
.bufferFeatures
);
1465 void DumpVkFormatProperties3(Printer
&p
, std::string name
, const VkFormatProperties3
&obj
) {
1466 ObjectWrapper object
{p
, name
};
1468 DumpVkFormatFeatureFlags2(p
, "linearTilingFeatures", obj
.linearTilingFeatures
);
1470 DumpVkFormatFeatureFlags2(p
, "optimalTilingFeatures", obj
.optimalTilingFeatures
);
1472 DumpVkFormatFeatureFlags2(p
, "bufferFeatures", obj
.bufferFeatures
);
1474 void DumpVkLayerProperties(Printer
&p
, std::string name
, const VkLayerProperties
&obj
) {
1475 ObjectWrapper object
{p
, name
};
1476 p
.SetMinKeyWidth(21);
1477 p
.PrintKeyString("layerName", obj
.layerName
);
1478 p
.PrintKeyValue("specVersion", obj
.specVersion
);
1479 p
.PrintKeyValue("implementationVersion", obj
.implementationVersion
);
1480 p
.PrintKeyString("description", obj
.description
);
1482 void DumpVkPhysicalDevice16BitStorageFeatures(Printer
&p
, std::string name
, const VkPhysicalDevice16BitStorageFeatures
&obj
) {
1483 ObjectWrapper object
{p
, name
};
1484 p
.SetMinKeyWidth(34);
1485 p
.PrintKeyBool("storageBuffer16BitAccess", static_cast<bool>(obj
.storageBuffer16BitAccess
));
1486 p
.PrintKeyBool("uniformAndStorageBuffer16BitAccess", static_cast<bool>(obj
.uniformAndStorageBuffer16BitAccess
));
1487 p
.PrintKeyBool("storagePushConstant16", static_cast<bool>(obj
.storagePushConstant16
));
1488 p
.PrintKeyBool("storageInputOutput16", static_cast<bool>(obj
.storageInputOutput16
));
1490 void DumpVkPhysicalDevice4444FormatsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevice4444FormatsFeaturesEXT
&obj
) {
1491 ObjectWrapper object
{p
, name
};
1492 p
.SetMinKeyWidth(14);
1493 p
.PrintKeyBool("formatA4R4G4B4", static_cast<bool>(obj
.formatA4R4G4B4
));
1494 p
.PrintKeyBool("formatA4B4G4R4", static_cast<bool>(obj
.formatA4B4G4R4
));
1496 void DumpVkPhysicalDevice8BitStorageFeatures(Printer
&p
, std::string name
, const VkPhysicalDevice8BitStorageFeatures
&obj
) {
1497 ObjectWrapper object
{p
, name
};
1498 p
.SetMinKeyWidth(33);
1499 p
.PrintKeyBool("storageBuffer8BitAccess", static_cast<bool>(obj
.storageBuffer8BitAccess
));
1500 p
.PrintKeyBool("uniformAndStorageBuffer8BitAccess", static_cast<bool>(obj
.uniformAndStorageBuffer8BitAccess
));
1501 p
.PrintKeyBool("storagePushConstant8", static_cast<bool>(obj
.storagePushConstant8
));
1503 void DumpVkPhysicalDeviceASTCDecodeFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceASTCDecodeFeaturesEXT
&obj
) {
1504 ObjectWrapper object
{p
, name
};
1505 p
.SetMinKeyWidth(24);
1506 p
.PrintKeyBool("decodeModeSharedExponent", static_cast<bool>(obj
.decodeModeSharedExponent
));
1508 void DumpVkPhysicalDeviceAccelerationStructureFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceAccelerationStructureFeaturesKHR
&obj
) {
1509 ObjectWrapper object
{p
, name
};
1510 p
.SetMinKeyWidth(53);
1511 p
.PrintKeyBool("accelerationStructure", static_cast<bool>(obj
.accelerationStructure
));
1512 p
.PrintKeyBool("accelerationStructureCaptureReplay", static_cast<bool>(obj
.accelerationStructureCaptureReplay
));
1513 p
.PrintKeyBool("accelerationStructureIndirectBuild", static_cast<bool>(obj
.accelerationStructureIndirectBuild
));
1514 p
.PrintKeyBool("accelerationStructureHostCommands", static_cast<bool>(obj
.accelerationStructureHostCommands
));
1515 p
.PrintKeyBool("descriptorBindingAccelerationStructureUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingAccelerationStructureUpdateAfterBind
));
1517 void DumpVkPhysicalDeviceAccelerationStructurePropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceAccelerationStructurePropertiesKHR
&obj
) {
1518 ObjectWrapper object
{p
, name
};
1519 p
.SetMinKeyWidth(58);
1520 p
.PrintKeyValue("maxGeometryCount", obj
.maxGeometryCount
);
1521 p
.PrintKeyValue("maxInstanceCount", obj
.maxInstanceCount
);
1522 p
.PrintKeyValue("maxPrimitiveCount", obj
.maxPrimitiveCount
);
1523 p
.PrintKeyValue("maxPerStageDescriptorAccelerationStructures", obj
.maxPerStageDescriptorAccelerationStructures
);
1524 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindAccelerationStructures", obj
.maxPerStageDescriptorUpdateAfterBindAccelerationStructures
);
1525 p
.PrintKeyValue("maxDescriptorSetAccelerationStructures", obj
.maxDescriptorSetAccelerationStructures
);
1526 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindAccelerationStructures", obj
.maxDescriptorSetUpdateAfterBindAccelerationStructures
);
1527 p
.PrintKeyValue("minAccelerationStructureScratchOffsetAlignment", obj
.minAccelerationStructureScratchOffsetAlignment
);
1529 void DumpVkPhysicalDeviceAddressBindingReportFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceAddressBindingReportFeaturesEXT
&obj
) {
1530 ObjectWrapper object
{p
, name
};
1531 p
.SetMinKeyWidth(20);
1532 p
.PrintKeyBool("reportAddressBinding", static_cast<bool>(obj
.reportAddressBinding
));
1534 void DumpVkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
&obj
) {
1535 ObjectWrapper object
{p
, name
};
1536 p
.SetMinKeyWidth(34);
1537 p
.PrintKeyBool("attachmentFeedbackLoopDynamicState", static_cast<bool>(obj
.attachmentFeedbackLoopDynamicState
));
1539 void DumpVkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
&obj
) {
1540 ObjectWrapper object
{p
, name
};
1541 p
.SetMinKeyWidth(28);
1542 p
.PrintKeyBool("attachmentFeedbackLoopLayout", static_cast<bool>(obj
.attachmentFeedbackLoopLayout
));
1544 void DumpVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
&obj
) {
1545 ObjectWrapper object
{p
, name
};
1546 p
.SetMinKeyWidth(31);
1547 p
.PrintKeyBool("advancedBlendCoherentOperations", static_cast<bool>(obj
.advancedBlendCoherentOperations
));
1549 void DumpVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
&obj
) {
1550 ObjectWrapper object
{p
, name
};
1551 p
.SetMinKeyWidth(37);
1552 p
.PrintKeyValue("advancedBlendMaxColorAttachments", obj
.advancedBlendMaxColorAttachments
);
1553 p
.PrintKeyBool("advancedBlendIndependentBlend", static_cast<bool>(obj
.advancedBlendIndependentBlend
));
1554 p
.PrintKeyBool("advancedBlendNonPremultipliedSrcColor", static_cast<bool>(obj
.advancedBlendNonPremultipliedSrcColor
));
1555 p
.PrintKeyBool("advancedBlendNonPremultipliedDstColor", static_cast<bool>(obj
.advancedBlendNonPremultipliedDstColor
));
1556 p
.PrintKeyBool("advancedBlendCorrelatedOverlap", static_cast<bool>(obj
.advancedBlendCorrelatedOverlap
));
1557 p
.PrintKeyBool("advancedBlendAllOperations", static_cast<bool>(obj
.advancedBlendAllOperations
));
1559 void DumpVkPhysicalDeviceBorderColorSwizzleFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
&obj
) {
1560 ObjectWrapper object
{p
, name
};
1561 p
.SetMinKeyWidth(27);
1562 p
.PrintKeyBool("borderColorSwizzle", static_cast<bool>(obj
.borderColorSwizzle
));
1563 p
.PrintKeyBool("borderColorSwizzleFromImage", static_cast<bool>(obj
.borderColorSwizzleFromImage
));
1565 void DumpVkPhysicalDeviceBufferDeviceAddressFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceBufferDeviceAddressFeatures
&obj
) {
1566 ObjectWrapper object
{p
, name
};
1567 p
.SetMinKeyWidth(32);
1568 p
.PrintKeyBool("bufferDeviceAddress", static_cast<bool>(obj
.bufferDeviceAddress
));
1569 p
.PrintKeyBool("bufferDeviceAddressCaptureReplay", static_cast<bool>(obj
.bufferDeviceAddressCaptureReplay
));
1570 p
.PrintKeyBool("bufferDeviceAddressMultiDevice", static_cast<bool>(obj
.bufferDeviceAddressMultiDevice
));
1572 void DumpVkPhysicalDeviceBufferDeviceAddressFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
&obj
) {
1573 ObjectWrapper object
{p
, name
};
1574 p
.SetMinKeyWidth(32);
1575 p
.PrintKeyBool("bufferDeviceAddress", static_cast<bool>(obj
.bufferDeviceAddress
));
1576 p
.PrintKeyBool("bufferDeviceAddressCaptureReplay", static_cast<bool>(obj
.bufferDeviceAddressCaptureReplay
));
1577 p
.PrintKeyBool("bufferDeviceAddressMultiDevice", static_cast<bool>(obj
.bufferDeviceAddressMultiDevice
));
1579 void DumpVkPhysicalDeviceColorWriteEnableFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceColorWriteEnableFeaturesEXT
&obj
) {
1580 ObjectWrapper object
{p
, name
};
1581 p
.SetMinKeyWidth(16);
1582 p
.PrintKeyBool("colorWriteEnable", static_cast<bool>(obj
.colorWriteEnable
));
1584 void DumpVkPhysicalDeviceComputeShaderDerivativesFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
&obj
) {
1585 ObjectWrapper object
{p
, name
};
1586 p
.SetMinKeyWidth(28);
1587 p
.PrintKeyBool("computeDerivativeGroupQuads", static_cast<bool>(obj
.computeDerivativeGroupQuads
));
1588 p
.PrintKeyBool("computeDerivativeGroupLinear", static_cast<bool>(obj
.computeDerivativeGroupLinear
));
1590 void DumpVkPhysicalDeviceComputeShaderDerivativesPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
&obj
) {
1591 ObjectWrapper object
{p
, name
};
1592 p
.SetMinKeyWidth(28);
1593 p
.PrintKeyBool("meshAndTaskShaderDerivatives", static_cast<bool>(obj
.meshAndTaskShaderDerivatives
));
1595 void DumpVkPhysicalDeviceConditionalRenderingFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceConditionalRenderingFeaturesEXT
&obj
) {
1596 ObjectWrapper object
{p
, name
};
1597 p
.SetMinKeyWidth(29);
1598 p
.PrintKeyBool("conditionalRendering", static_cast<bool>(obj
.conditionalRendering
));
1599 p
.PrintKeyBool("inheritedConditionalRendering", static_cast<bool>(obj
.inheritedConditionalRendering
));
1601 void DumpVkPhysicalDeviceConservativeRasterizationPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceConservativeRasterizationPropertiesEXT
&obj
) {
1602 ObjectWrapper object
{p
, name
};
1603 p
.SetMinKeyWidth(43);
1604 p
.PrintKeyValue("primitiveOverestimationSize", obj
.primitiveOverestimationSize
);
1605 p
.PrintKeyValue("maxExtraPrimitiveOverestimationSize", obj
.maxExtraPrimitiveOverestimationSize
);
1606 p
.PrintKeyValue("extraPrimitiveOverestimationSizeGranularity", obj
.extraPrimitiveOverestimationSizeGranularity
);
1607 p
.PrintKeyBool("primitiveUnderestimation", static_cast<bool>(obj
.primitiveUnderestimation
));
1608 p
.PrintKeyBool("conservativePointAndLineRasterization", static_cast<bool>(obj
.conservativePointAndLineRasterization
));
1609 p
.PrintKeyBool("degenerateTrianglesRasterized", static_cast<bool>(obj
.degenerateTrianglesRasterized
));
1610 p
.PrintKeyBool("degenerateLinesRasterized", static_cast<bool>(obj
.degenerateLinesRasterized
));
1611 p
.PrintKeyBool("fullyCoveredFragmentShaderInputVariable", static_cast<bool>(obj
.fullyCoveredFragmentShaderInputVariable
));
1612 p
.PrintKeyBool("conservativeRasterizationPostDepthCoverage", static_cast<bool>(obj
.conservativeRasterizationPostDepthCoverage
));
1614 void DumpVkPhysicalDeviceCooperativeMatrixFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceCooperativeMatrixFeaturesKHR
&obj
) {
1615 ObjectWrapper object
{p
, name
};
1616 p
.SetMinKeyWidth(35);
1617 p
.PrintKeyBool("cooperativeMatrix", static_cast<bool>(obj
.cooperativeMatrix
));
1618 p
.PrintKeyBool("cooperativeMatrixRobustBufferAccess", static_cast<bool>(obj
.cooperativeMatrixRobustBufferAccess
));
1620 void DumpVkPhysicalDeviceCooperativeMatrixPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceCooperativeMatrixPropertiesKHR
&obj
) {
1621 ObjectWrapper object
{p
, name
};
1622 DumpVkShaderStageFlags(p
, "cooperativeMatrixSupportedStages", obj
.cooperativeMatrixSupportedStages
);
1624 void DumpVkPhysicalDeviceCustomBorderColorFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceCustomBorderColorFeaturesEXT
&obj
) {
1625 ObjectWrapper object
{p
, name
};
1626 p
.SetMinKeyWidth(30);
1627 p
.PrintKeyBool("customBorderColors", static_cast<bool>(obj
.customBorderColors
));
1628 p
.PrintKeyBool("customBorderColorWithoutFormat", static_cast<bool>(obj
.customBorderColorWithoutFormat
));
1630 void DumpVkPhysicalDeviceCustomBorderColorPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceCustomBorderColorPropertiesEXT
&obj
) {
1631 ObjectWrapper object
{p
, name
};
1632 p
.SetMinKeyWidth(28);
1633 p
.PrintKeyValue("maxCustomBorderColorSamplers", obj
.maxCustomBorderColorSamplers
);
1635 void DumpVkPhysicalDeviceDepthBiasControlFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthBiasControlFeaturesEXT
&obj
) {
1636 ObjectWrapper object
{p
, name
};
1637 p
.SetMinKeyWidth(47);
1638 p
.PrintKeyBool("depthBiasControl", static_cast<bool>(obj
.depthBiasControl
));
1639 p
.PrintKeyBool("leastRepresentableValueForceUnormRepresentation", static_cast<bool>(obj
.leastRepresentableValueForceUnormRepresentation
));
1640 p
.PrintKeyBool("floatRepresentation", static_cast<bool>(obj
.floatRepresentation
));
1641 p
.PrintKeyBool("depthBiasExact", static_cast<bool>(obj
.depthBiasExact
));
1643 void DumpVkPhysicalDeviceDepthClampControlFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthClampControlFeaturesEXT
&obj
) {
1644 ObjectWrapper object
{p
, name
};
1645 p
.SetMinKeyWidth(17);
1646 p
.PrintKeyBool("depthClampControl", static_cast<bool>(obj
.depthClampControl
));
1648 void DumpVkPhysicalDeviceDepthClampZeroOneFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthClampZeroOneFeaturesEXT
&obj
) {
1649 ObjectWrapper object
{p
, name
};
1650 p
.SetMinKeyWidth(17);
1651 p
.PrintKeyBool("depthClampZeroOne", static_cast<bool>(obj
.depthClampZeroOne
));
1653 void DumpVkPhysicalDeviceDepthClipControlFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthClipControlFeaturesEXT
&obj
) {
1654 ObjectWrapper object
{p
, name
};
1655 p
.SetMinKeyWidth(16);
1656 p
.PrintKeyBool("depthClipControl", static_cast<bool>(obj
.depthClipControl
));
1658 void DumpVkPhysicalDeviceDepthClipEnableFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthClipEnableFeaturesEXT
&obj
) {
1659 ObjectWrapper object
{p
, name
};
1660 p
.SetMinKeyWidth(15);
1661 p
.PrintKeyBool("depthClipEnable", static_cast<bool>(obj
.depthClipEnable
));
1663 void DumpVkPhysicalDeviceDepthStencilResolveProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceDepthStencilResolveProperties
&obj
) {
1664 ObjectWrapper object
{p
, name
};
1665 p
.SetMinKeyWidth(22);
1666 DumpVkResolveModeFlags(p
, "supportedDepthResolveModes", obj
.supportedDepthResolveModes
);
1667 DumpVkResolveModeFlags(p
, "supportedStencilResolveModes", obj
.supportedStencilResolveModes
);
1668 p
.PrintKeyBool("independentResolveNone", static_cast<bool>(obj
.independentResolveNone
));
1669 p
.PrintKeyBool("independentResolve", static_cast<bool>(obj
.independentResolve
));
1671 void DumpVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
&obj
) {
1672 ObjectWrapper object
{p
, name
};
1673 p
.SetMinKeyWidth(44);
1674 p
.PrintKeyValue("combinedImageSamplerDensityMapDescriptorSize", obj
.combinedImageSamplerDensityMapDescriptorSize
);
1676 void DumpVkPhysicalDeviceDescriptorBufferFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorBufferFeaturesEXT
&obj
) {
1677 ObjectWrapper object
{p
, name
};
1678 p
.SetMinKeyWidth(34);
1679 p
.PrintKeyBool("descriptorBuffer", static_cast<bool>(obj
.descriptorBuffer
));
1680 p
.PrintKeyBool("descriptorBufferCaptureReplay", static_cast<bool>(obj
.descriptorBufferCaptureReplay
));
1681 p
.PrintKeyBool("descriptorBufferImageLayoutIgnored", static_cast<bool>(obj
.descriptorBufferImageLayoutIgnored
));
1682 p
.PrintKeyBool("descriptorBufferPushDescriptors", static_cast<bool>(obj
.descriptorBufferPushDescriptors
));
1684 void DumpVkPhysicalDeviceDescriptorBufferPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorBufferPropertiesEXT
&obj
) {
1685 ObjectWrapper object
{p
, name
};
1686 p
.SetMinKeyWidth(52);
1687 p
.PrintKeyBool("combinedImageSamplerDescriptorSingleArray", static_cast<bool>(obj
.combinedImageSamplerDescriptorSingleArray
));
1688 p
.PrintKeyBool("bufferlessPushDescriptors", static_cast<bool>(obj
.bufferlessPushDescriptors
));
1689 p
.PrintKeyBool("allowSamplerImageViewPostSubmitCreation", static_cast<bool>(obj
.allowSamplerImageViewPostSubmitCreation
));
1690 p
.PrintKeyValue("descriptorBufferOffsetAlignment", to_hex_str(p
, obj
.descriptorBufferOffsetAlignment
));
1691 p
.PrintKeyValue("maxDescriptorBufferBindings", obj
.maxDescriptorBufferBindings
);
1692 p
.PrintKeyValue("maxResourceDescriptorBufferBindings", obj
.maxResourceDescriptorBufferBindings
);
1693 p
.PrintKeyValue("maxSamplerDescriptorBufferBindings", obj
.maxSamplerDescriptorBufferBindings
);
1694 p
.PrintKeyValue("maxEmbeddedImmutableSamplerBindings", obj
.maxEmbeddedImmutableSamplerBindings
);
1695 p
.PrintKeyValue("maxEmbeddedImmutableSamplers", obj
.maxEmbeddedImmutableSamplers
);
1696 p
.PrintKeyValue("bufferCaptureReplayDescriptorDataSize", obj
.bufferCaptureReplayDescriptorDataSize
);
1697 p
.PrintKeyValue("imageCaptureReplayDescriptorDataSize", obj
.imageCaptureReplayDescriptorDataSize
);
1698 p
.PrintKeyValue("imageViewCaptureReplayDescriptorDataSize", obj
.imageViewCaptureReplayDescriptorDataSize
);
1699 p
.PrintKeyValue("samplerCaptureReplayDescriptorDataSize", obj
.samplerCaptureReplayDescriptorDataSize
);
1700 p
.PrintKeyValue("accelerationStructureCaptureReplayDescriptorDataSize", obj
.accelerationStructureCaptureReplayDescriptorDataSize
);
1701 p
.PrintKeyValue("samplerDescriptorSize", obj
.samplerDescriptorSize
);
1702 p
.PrintKeyValue("combinedImageSamplerDescriptorSize", obj
.combinedImageSamplerDescriptorSize
);
1703 p
.PrintKeyValue("sampledImageDescriptorSize", obj
.sampledImageDescriptorSize
);
1704 p
.PrintKeyValue("storageImageDescriptorSize", obj
.storageImageDescriptorSize
);
1705 p
.PrintKeyValue("uniformTexelBufferDescriptorSize", obj
.uniformTexelBufferDescriptorSize
);
1706 p
.PrintKeyValue("robustUniformTexelBufferDescriptorSize", obj
.robustUniformTexelBufferDescriptorSize
);
1707 p
.PrintKeyValue("storageTexelBufferDescriptorSize", obj
.storageTexelBufferDescriptorSize
);
1708 p
.PrintKeyValue("robustStorageTexelBufferDescriptorSize", obj
.robustStorageTexelBufferDescriptorSize
);
1709 p
.PrintKeyValue("uniformBufferDescriptorSize", obj
.uniformBufferDescriptorSize
);
1710 p
.PrintKeyValue("robustUniformBufferDescriptorSize", obj
.robustUniformBufferDescriptorSize
);
1711 p
.PrintKeyValue("storageBufferDescriptorSize", obj
.storageBufferDescriptorSize
);
1712 p
.PrintKeyValue("robustStorageBufferDescriptorSize", obj
.robustStorageBufferDescriptorSize
);
1713 p
.PrintKeyValue("inputAttachmentDescriptorSize", obj
.inputAttachmentDescriptorSize
);
1714 p
.PrintKeyValue("accelerationStructureDescriptorSize", obj
.accelerationStructureDescriptorSize
);
1715 p
.PrintKeyValue("maxSamplerDescriptorBufferRange", to_hex_str(p
, obj
.maxSamplerDescriptorBufferRange
));
1716 p
.PrintKeyValue("maxResourceDescriptorBufferRange", to_hex_str(p
, obj
.maxResourceDescriptorBufferRange
));
1717 p
.PrintKeyValue("samplerDescriptorBufferAddressSpaceSize", to_hex_str(p
, obj
.samplerDescriptorBufferAddressSpaceSize
));
1718 p
.PrintKeyValue("resourceDescriptorBufferAddressSpaceSize", to_hex_str(p
, obj
.resourceDescriptorBufferAddressSpaceSize
));
1719 p
.PrintKeyValue("descriptorBufferAddressSpaceSize", to_hex_str(p
, obj
.descriptorBufferAddressSpaceSize
));
1721 void DumpVkPhysicalDeviceDescriptorIndexingFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorIndexingFeatures
&obj
) {
1722 ObjectWrapper object
{p
, name
};
1723 p
.SetMinKeyWidth(50);
1724 p
.PrintKeyBool("shaderInputAttachmentArrayDynamicIndexing", static_cast<bool>(obj
.shaderInputAttachmentArrayDynamicIndexing
));
1725 p
.PrintKeyBool("shaderUniformTexelBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderUniformTexelBufferArrayDynamicIndexing
));
1726 p
.PrintKeyBool("shaderStorageTexelBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderStorageTexelBufferArrayDynamicIndexing
));
1727 p
.PrintKeyBool("shaderUniformBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderUniformBufferArrayNonUniformIndexing
));
1728 p
.PrintKeyBool("shaderSampledImageArrayNonUniformIndexing", static_cast<bool>(obj
.shaderSampledImageArrayNonUniformIndexing
));
1729 p
.PrintKeyBool("shaderStorageBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageBufferArrayNonUniformIndexing
));
1730 p
.PrintKeyBool("shaderStorageImageArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageImageArrayNonUniformIndexing
));
1731 p
.PrintKeyBool("shaderInputAttachmentArrayNonUniformIndexing", static_cast<bool>(obj
.shaderInputAttachmentArrayNonUniformIndexing
));
1732 p
.PrintKeyBool("shaderUniformTexelBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderUniformTexelBufferArrayNonUniformIndexing
));
1733 p
.PrintKeyBool("shaderStorageTexelBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageTexelBufferArrayNonUniformIndexing
));
1734 p
.PrintKeyBool("descriptorBindingUniformBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingUniformBufferUpdateAfterBind
));
1735 p
.PrintKeyBool("descriptorBindingSampledImageUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingSampledImageUpdateAfterBind
));
1736 p
.PrintKeyBool("descriptorBindingStorageImageUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageImageUpdateAfterBind
));
1737 p
.PrintKeyBool("descriptorBindingStorageBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageBufferUpdateAfterBind
));
1738 p
.PrintKeyBool("descriptorBindingUniformTexelBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingUniformTexelBufferUpdateAfterBind
));
1739 p
.PrintKeyBool("descriptorBindingStorageTexelBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageTexelBufferUpdateAfterBind
));
1740 p
.PrintKeyBool("descriptorBindingUpdateUnusedWhilePending", static_cast<bool>(obj
.descriptorBindingUpdateUnusedWhilePending
));
1741 p
.PrintKeyBool("descriptorBindingPartiallyBound", static_cast<bool>(obj
.descriptorBindingPartiallyBound
));
1742 p
.PrintKeyBool("descriptorBindingVariableDescriptorCount", static_cast<bool>(obj
.descriptorBindingVariableDescriptorCount
));
1743 p
.PrintKeyBool("runtimeDescriptorArray", static_cast<bool>(obj
.runtimeDescriptorArray
));
1745 void DumpVkPhysicalDeviceDescriptorIndexingProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceDescriptorIndexingProperties
&obj
) {
1746 ObjectWrapper object
{p
, name
};
1747 p
.SetMinKeyWidth(52);
1748 p
.PrintKeyValue("maxUpdateAfterBindDescriptorsInAllPools", obj
.maxUpdateAfterBindDescriptorsInAllPools
);
1749 p
.PrintKeyBool("shaderUniformBufferArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderUniformBufferArrayNonUniformIndexingNative
));
1750 p
.PrintKeyBool("shaderSampledImageArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderSampledImageArrayNonUniformIndexingNative
));
1751 p
.PrintKeyBool("shaderStorageBufferArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderStorageBufferArrayNonUniformIndexingNative
));
1752 p
.PrintKeyBool("shaderStorageImageArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderStorageImageArrayNonUniformIndexingNative
));
1753 p
.PrintKeyBool("shaderInputAttachmentArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderInputAttachmentArrayNonUniformIndexingNative
));
1754 p
.PrintKeyBool("robustBufferAccessUpdateAfterBind", static_cast<bool>(obj
.robustBufferAccessUpdateAfterBind
));
1755 p
.PrintKeyBool("quadDivergentImplicitLod", static_cast<bool>(obj
.quadDivergentImplicitLod
));
1756 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindSamplers", obj
.maxPerStageDescriptorUpdateAfterBindSamplers
);
1757 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindUniformBuffers", obj
.maxPerStageDescriptorUpdateAfterBindUniformBuffers
);
1758 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindStorageBuffers", obj
.maxPerStageDescriptorUpdateAfterBindStorageBuffers
);
1759 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindSampledImages", obj
.maxPerStageDescriptorUpdateAfterBindSampledImages
);
1760 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindStorageImages", obj
.maxPerStageDescriptorUpdateAfterBindStorageImages
);
1761 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindInputAttachments", obj
.maxPerStageDescriptorUpdateAfterBindInputAttachments
);
1762 p
.PrintKeyValue("maxPerStageUpdateAfterBindResources", obj
.maxPerStageUpdateAfterBindResources
);
1763 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindSamplers", obj
.maxDescriptorSetUpdateAfterBindSamplers
);
1764 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindUniformBuffers", obj
.maxDescriptorSetUpdateAfterBindUniformBuffers
);
1765 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindUniformBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
);
1766 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageBuffers", obj
.maxDescriptorSetUpdateAfterBindStorageBuffers
);
1767 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
);
1768 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindSampledImages", obj
.maxDescriptorSetUpdateAfterBindSampledImages
);
1769 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageImages", obj
.maxDescriptorSetUpdateAfterBindStorageImages
);
1770 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindInputAttachments", obj
.maxDescriptorSetUpdateAfterBindInputAttachments
);
1772 void DumpVkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
&obj
) {
1773 ObjectWrapper object
{p
, name
};
1774 p
.SetMinKeyWidth(30);
1775 p
.PrintKeyBool("deviceGeneratedCommands", static_cast<bool>(obj
.deviceGeneratedCommands
));
1776 p
.PrintKeyBool("dynamicGeneratedPipelineLayout", static_cast<bool>(obj
.dynamicGeneratedPipelineLayout
));
1778 void DumpVkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
&obj
) {
1779 ObjectWrapper object
{p
, name
};
1780 p
.SetMinKeyWidth(45);
1781 p
.PrintKeyValue("maxIndirectPipelineCount", obj
.maxIndirectPipelineCount
);
1782 p
.PrintKeyValue("maxIndirectShaderObjectCount", obj
.maxIndirectShaderObjectCount
);
1783 p
.PrintKeyValue("maxIndirectSequenceCount", obj
.maxIndirectSequenceCount
);
1784 p
.PrintKeyValue("maxIndirectCommandsTokenCount", obj
.maxIndirectCommandsTokenCount
);
1785 p
.PrintKeyValue("maxIndirectCommandsTokenOffset", obj
.maxIndirectCommandsTokenOffset
);
1786 p
.PrintKeyValue("maxIndirectCommandsIndirectStride", obj
.maxIndirectCommandsIndirectStride
);
1787 DumpVkIndirectCommandsInputModeFlagsEXT(p
, "supportedIndirectCommandsInputModes", obj
.supportedIndirectCommandsInputModes
);
1788 DumpVkShaderStageFlags(p
, "supportedIndirectCommandsShaderStages", obj
.supportedIndirectCommandsShaderStages
);
1789 DumpVkShaderStageFlags(p
, "supportedIndirectCommandsShaderStagesPipelineBinding", obj
.supportedIndirectCommandsShaderStagesPipelineBinding
);
1790 DumpVkShaderStageFlags(p
, "supportedIndirectCommandsShaderStagesShaderBinding", obj
.supportedIndirectCommandsShaderStagesShaderBinding
);
1791 p
.PrintKeyBool("deviceGeneratedCommandsTransformFeedback", static_cast<bool>(obj
.deviceGeneratedCommandsTransformFeedback
));
1792 p
.PrintKeyBool("deviceGeneratedCommandsMultiDrawIndirectCount", static_cast<bool>(obj
.deviceGeneratedCommandsMultiDrawIndirectCount
));
1794 void DumpVkPhysicalDeviceDeviceMemoryReportFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
&obj
) {
1795 ObjectWrapper object
{p
, name
};
1796 p
.SetMinKeyWidth(18);
1797 p
.PrintKeyBool("deviceMemoryReport", static_cast<bool>(obj
.deviceMemoryReport
));
1799 void DumpVkPhysicalDeviceDiscardRectanglePropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDiscardRectanglePropertiesEXT
&obj
) {
1800 ObjectWrapper object
{p
, name
};
1801 p
.SetMinKeyWidth(20);
1802 p
.PrintKeyValue("maxDiscardRectangles", obj
.maxDiscardRectangles
);
1804 void DumpVkPhysicalDeviceDriverProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceDriverProperties
&obj
) {
1805 ObjectWrapper object
{p
, name
};
1806 p
.SetMinKeyWidth(15);
1807 DumpVkDriverId(p
, "driverID", obj
.driverID
);
1808 p
.PrintKeyString("driverName", obj
.driverName
);
1809 p
.PrintKeyString("driverInfo", obj
.driverInfo
);
1810 DumpVkConformanceVersion(p
, "conformanceVersion", obj
.conformanceVersion
);
1812 void DumpVkPhysicalDeviceDrmPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDrmPropertiesEXT
&obj
) {
1813 ObjectWrapper object
{p
, name
};
1814 p
.SetMinKeyWidth(12);
1815 p
.PrintKeyBool("hasPrimary", static_cast<bool>(obj
.hasPrimary
));
1816 p
.PrintKeyBool("hasRender", static_cast<bool>(obj
.hasRender
));
1817 p
.PrintKeyValue("primaryMajor", obj
.primaryMajor
);
1818 p
.PrintKeyValue("primaryMinor", obj
.primaryMinor
);
1819 p
.PrintKeyValue("renderMajor", obj
.renderMajor
);
1820 p
.PrintKeyValue("renderMinor", obj
.renderMinor
);
1822 void DumpVkPhysicalDeviceDynamicRenderingFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceDynamicRenderingFeatures
&obj
) {
1823 ObjectWrapper object
{p
, name
};
1824 p
.SetMinKeyWidth(16);
1825 p
.PrintKeyBool("dynamicRendering", static_cast<bool>(obj
.dynamicRendering
));
1827 void DumpVkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR
&obj
) {
1828 ObjectWrapper object
{p
, name
};
1829 p
.SetMinKeyWidth(25);
1830 p
.PrintKeyBool("dynamicRenderingLocalRead", static_cast<bool>(obj
.dynamicRenderingLocalRead
));
1832 void DumpVkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
&obj
) {
1833 ObjectWrapper object
{p
, name
};
1834 p
.SetMinKeyWidth(33);
1835 p
.PrintKeyBool("dynamicRenderingUnusedAttachments", static_cast<bool>(obj
.dynamicRenderingUnusedAttachments
));
1837 void DumpVkPhysicalDeviceExtendedDynamicState2FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
&obj
) {
1838 ObjectWrapper object
{p
, name
};
1839 p
.SetMinKeyWidth(39);
1840 p
.PrintKeyBool("extendedDynamicState2", static_cast<bool>(obj
.extendedDynamicState2
));
1841 p
.PrintKeyBool("extendedDynamicState2LogicOp", static_cast<bool>(obj
.extendedDynamicState2LogicOp
));
1842 p
.PrintKeyBool("extendedDynamicState2PatchControlPoints", static_cast<bool>(obj
.extendedDynamicState2PatchControlPoints
));
1844 void DumpVkPhysicalDeviceExtendedDynamicState3FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExtendedDynamicState3FeaturesEXT
&obj
) {
1845 ObjectWrapper object
{p
, name
};
1846 p
.SetMinKeyWidth(53);
1847 p
.PrintKeyBool("extendedDynamicState3TessellationDomainOrigin", static_cast<bool>(obj
.extendedDynamicState3TessellationDomainOrigin
));
1848 p
.PrintKeyBool("extendedDynamicState3DepthClampEnable", static_cast<bool>(obj
.extendedDynamicState3DepthClampEnable
));
1849 p
.PrintKeyBool("extendedDynamicState3PolygonMode", static_cast<bool>(obj
.extendedDynamicState3PolygonMode
));
1850 p
.PrintKeyBool("extendedDynamicState3RasterizationSamples", static_cast<bool>(obj
.extendedDynamicState3RasterizationSamples
));
1851 p
.PrintKeyBool("extendedDynamicState3SampleMask", static_cast<bool>(obj
.extendedDynamicState3SampleMask
));
1852 p
.PrintKeyBool("extendedDynamicState3AlphaToCoverageEnable", static_cast<bool>(obj
.extendedDynamicState3AlphaToCoverageEnable
));
1853 p
.PrintKeyBool("extendedDynamicState3AlphaToOneEnable", static_cast<bool>(obj
.extendedDynamicState3AlphaToOneEnable
));
1854 p
.PrintKeyBool("extendedDynamicState3LogicOpEnable", static_cast<bool>(obj
.extendedDynamicState3LogicOpEnable
));
1855 p
.PrintKeyBool("extendedDynamicState3ColorBlendEnable", static_cast<bool>(obj
.extendedDynamicState3ColorBlendEnable
));
1856 p
.PrintKeyBool("extendedDynamicState3ColorBlendEquation", static_cast<bool>(obj
.extendedDynamicState3ColorBlendEquation
));
1857 p
.PrintKeyBool("extendedDynamicState3ColorWriteMask", static_cast<bool>(obj
.extendedDynamicState3ColorWriteMask
));
1858 p
.PrintKeyBool("extendedDynamicState3RasterizationStream", static_cast<bool>(obj
.extendedDynamicState3RasterizationStream
));
1859 p
.PrintKeyBool("extendedDynamicState3ConservativeRasterizationMode", static_cast<bool>(obj
.extendedDynamicState3ConservativeRasterizationMode
));
1860 p
.PrintKeyBool("extendedDynamicState3ExtraPrimitiveOverestimationSize", static_cast<bool>(obj
.extendedDynamicState3ExtraPrimitiveOverestimationSize
));
1861 p
.PrintKeyBool("extendedDynamicState3DepthClipEnable", static_cast<bool>(obj
.extendedDynamicState3DepthClipEnable
));
1862 p
.PrintKeyBool("extendedDynamicState3SampleLocationsEnable", static_cast<bool>(obj
.extendedDynamicState3SampleLocationsEnable
));
1863 p
.PrintKeyBool("extendedDynamicState3ColorBlendAdvanced", static_cast<bool>(obj
.extendedDynamicState3ColorBlendAdvanced
));
1864 p
.PrintKeyBool("extendedDynamicState3ProvokingVertexMode", static_cast<bool>(obj
.extendedDynamicState3ProvokingVertexMode
));
1865 p
.PrintKeyBool("extendedDynamicState3LineRasterizationMode", static_cast<bool>(obj
.extendedDynamicState3LineRasterizationMode
));
1866 p
.PrintKeyBool("extendedDynamicState3LineStippleEnable", static_cast<bool>(obj
.extendedDynamicState3LineStippleEnable
));
1867 p
.PrintKeyBool("extendedDynamicState3DepthClipNegativeOneToOne", static_cast<bool>(obj
.extendedDynamicState3DepthClipNegativeOneToOne
));
1868 p
.PrintKeyBool("extendedDynamicState3ViewportWScalingEnable", static_cast<bool>(obj
.extendedDynamicState3ViewportWScalingEnable
));
1869 p
.PrintKeyBool("extendedDynamicState3ViewportSwizzle", static_cast<bool>(obj
.extendedDynamicState3ViewportSwizzle
));
1870 p
.PrintKeyBool("extendedDynamicState3CoverageToColorEnable", static_cast<bool>(obj
.extendedDynamicState3CoverageToColorEnable
));
1871 p
.PrintKeyBool("extendedDynamicState3CoverageToColorLocation", static_cast<bool>(obj
.extendedDynamicState3CoverageToColorLocation
));
1872 p
.PrintKeyBool("extendedDynamicState3CoverageModulationMode", static_cast<bool>(obj
.extendedDynamicState3CoverageModulationMode
));
1873 p
.PrintKeyBool("extendedDynamicState3CoverageModulationTableEnable", static_cast<bool>(obj
.extendedDynamicState3CoverageModulationTableEnable
));
1874 p
.PrintKeyBool("extendedDynamicState3CoverageModulationTable", static_cast<bool>(obj
.extendedDynamicState3CoverageModulationTable
));
1875 p
.PrintKeyBool("extendedDynamicState3CoverageReductionMode", static_cast<bool>(obj
.extendedDynamicState3CoverageReductionMode
));
1876 p
.PrintKeyBool("extendedDynamicState3RepresentativeFragmentTestEnable", static_cast<bool>(obj
.extendedDynamicState3RepresentativeFragmentTestEnable
));
1877 p
.PrintKeyBool("extendedDynamicState3ShadingRateImageEnable", static_cast<bool>(obj
.extendedDynamicState3ShadingRateImageEnable
));
1879 void DumpVkPhysicalDeviceExtendedDynamicState3PropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExtendedDynamicState3PropertiesEXT
&obj
) {
1880 ObjectWrapper object
{p
, name
};
1881 p
.SetMinKeyWidth(36);
1882 p
.PrintKeyBool("dynamicPrimitiveTopologyUnrestricted", static_cast<bool>(obj
.dynamicPrimitiveTopologyUnrestricted
));
1884 void DumpVkPhysicalDeviceExtendedDynamicStateFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
&obj
) {
1885 ObjectWrapper object
{p
, name
};
1886 p
.SetMinKeyWidth(20);
1887 p
.PrintKeyBool("extendedDynamicState", static_cast<bool>(obj
.extendedDynamicState
));
1889 void DumpVkPhysicalDeviceExternalMemoryHostPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceExternalMemoryHostPropertiesEXT
&obj
) {
1890 ObjectWrapper object
{p
, name
};
1891 p
.SetMinKeyWidth(31);
1892 p
.PrintKeyValue("minImportedHostPointerAlignment", to_hex_str(p
, obj
.minImportedHostPointerAlignment
));
1894 void DumpVkPhysicalDeviceFaultFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFaultFeaturesEXT
&obj
) {
1895 ObjectWrapper object
{p
, name
};
1896 p
.SetMinKeyWidth(23);
1897 p
.PrintKeyBool("deviceFault", static_cast<bool>(obj
.deviceFault
));
1898 p
.PrintKeyBool("deviceFaultVendorBinary", static_cast<bool>(obj
.deviceFaultVendorBinary
));
1900 void DumpVkPhysicalDeviceFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceFeatures
&obj
) {
1901 ObjectWrapper object
{p
, name
};
1902 p
.SetMinKeyWidth(39);
1903 p
.PrintKeyBool("robustBufferAccess", static_cast<bool>(obj
.robustBufferAccess
));
1904 p
.PrintKeyBool("fullDrawIndexUint32", static_cast<bool>(obj
.fullDrawIndexUint32
));
1905 p
.PrintKeyBool("imageCubeArray", static_cast<bool>(obj
.imageCubeArray
));
1906 p
.PrintKeyBool("independentBlend", static_cast<bool>(obj
.independentBlend
));
1907 p
.PrintKeyBool("geometryShader", static_cast<bool>(obj
.geometryShader
));
1908 p
.PrintKeyBool("tessellationShader", static_cast<bool>(obj
.tessellationShader
));
1909 p
.PrintKeyBool("sampleRateShading", static_cast<bool>(obj
.sampleRateShading
));
1910 p
.PrintKeyBool("dualSrcBlend", static_cast<bool>(obj
.dualSrcBlend
));
1911 p
.PrintKeyBool("logicOp", static_cast<bool>(obj
.logicOp
));
1912 p
.PrintKeyBool("multiDrawIndirect", static_cast<bool>(obj
.multiDrawIndirect
));
1913 p
.PrintKeyBool("drawIndirectFirstInstance", static_cast<bool>(obj
.drawIndirectFirstInstance
));
1914 p
.PrintKeyBool("depthClamp", static_cast<bool>(obj
.depthClamp
));
1915 p
.PrintKeyBool("depthBiasClamp", static_cast<bool>(obj
.depthBiasClamp
));
1916 p
.PrintKeyBool("fillModeNonSolid", static_cast<bool>(obj
.fillModeNonSolid
));
1917 p
.PrintKeyBool("depthBounds", static_cast<bool>(obj
.depthBounds
));
1918 p
.PrintKeyBool("wideLines", static_cast<bool>(obj
.wideLines
));
1919 p
.PrintKeyBool("largePoints", static_cast<bool>(obj
.largePoints
));
1920 p
.PrintKeyBool("alphaToOne", static_cast<bool>(obj
.alphaToOne
));
1921 p
.PrintKeyBool("multiViewport", static_cast<bool>(obj
.multiViewport
));
1922 p
.PrintKeyBool("samplerAnisotropy", static_cast<bool>(obj
.samplerAnisotropy
));
1923 p
.PrintKeyBool("textureCompressionETC2", static_cast<bool>(obj
.textureCompressionETC2
));
1924 p
.PrintKeyBool("textureCompressionASTC_LDR", static_cast<bool>(obj
.textureCompressionASTC_LDR
));
1925 p
.PrintKeyBool("textureCompressionBC", static_cast<bool>(obj
.textureCompressionBC
));
1926 p
.PrintKeyBool("occlusionQueryPrecise", static_cast<bool>(obj
.occlusionQueryPrecise
));
1927 p
.PrintKeyBool("pipelineStatisticsQuery", static_cast<bool>(obj
.pipelineStatisticsQuery
));
1928 p
.PrintKeyBool("vertexPipelineStoresAndAtomics", static_cast<bool>(obj
.vertexPipelineStoresAndAtomics
));
1929 p
.PrintKeyBool("fragmentStoresAndAtomics", static_cast<bool>(obj
.fragmentStoresAndAtomics
));
1930 p
.PrintKeyBool("shaderTessellationAndGeometryPointSize", static_cast<bool>(obj
.shaderTessellationAndGeometryPointSize
));
1931 p
.PrintKeyBool("shaderImageGatherExtended", static_cast<bool>(obj
.shaderImageGatherExtended
));
1932 p
.PrintKeyBool("shaderStorageImageExtendedFormats", static_cast<bool>(obj
.shaderStorageImageExtendedFormats
));
1933 p
.PrintKeyBool("shaderStorageImageMultisample", static_cast<bool>(obj
.shaderStorageImageMultisample
));
1934 p
.PrintKeyBool("shaderStorageImageReadWithoutFormat", static_cast<bool>(obj
.shaderStorageImageReadWithoutFormat
));
1935 p
.PrintKeyBool("shaderStorageImageWriteWithoutFormat", static_cast<bool>(obj
.shaderStorageImageWriteWithoutFormat
));
1936 p
.PrintKeyBool("shaderUniformBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderUniformBufferArrayDynamicIndexing
));
1937 p
.PrintKeyBool("shaderSampledImageArrayDynamicIndexing", static_cast<bool>(obj
.shaderSampledImageArrayDynamicIndexing
));
1938 p
.PrintKeyBool("shaderStorageBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderStorageBufferArrayDynamicIndexing
));
1939 p
.PrintKeyBool("shaderStorageImageArrayDynamicIndexing", static_cast<bool>(obj
.shaderStorageImageArrayDynamicIndexing
));
1940 p
.PrintKeyBool("shaderClipDistance", static_cast<bool>(obj
.shaderClipDistance
));
1941 p
.PrintKeyBool("shaderCullDistance", static_cast<bool>(obj
.shaderCullDistance
));
1942 p
.PrintKeyBool("shaderFloat64", static_cast<bool>(obj
.shaderFloat64
));
1943 p
.PrintKeyBool("shaderInt64", static_cast<bool>(obj
.shaderInt64
));
1944 p
.PrintKeyBool("shaderInt16", static_cast<bool>(obj
.shaderInt16
));
1945 p
.PrintKeyBool("shaderResourceResidency", static_cast<bool>(obj
.shaderResourceResidency
));
1946 p
.PrintKeyBool("shaderResourceMinLod", static_cast<bool>(obj
.shaderResourceMinLod
));
1947 p
.PrintKeyBool("sparseBinding", static_cast<bool>(obj
.sparseBinding
));
1948 p
.PrintKeyBool("sparseResidencyBuffer", static_cast<bool>(obj
.sparseResidencyBuffer
));
1949 p
.PrintKeyBool("sparseResidencyImage2D", static_cast<bool>(obj
.sparseResidencyImage2D
));
1950 p
.PrintKeyBool("sparseResidencyImage3D", static_cast<bool>(obj
.sparseResidencyImage3D
));
1951 p
.PrintKeyBool("sparseResidency2Samples", static_cast<bool>(obj
.sparseResidency2Samples
));
1952 p
.PrintKeyBool("sparseResidency4Samples", static_cast<bool>(obj
.sparseResidency4Samples
));
1953 p
.PrintKeyBool("sparseResidency8Samples", static_cast<bool>(obj
.sparseResidency8Samples
));
1954 p
.PrintKeyBool("sparseResidency16Samples", static_cast<bool>(obj
.sparseResidency16Samples
));
1955 p
.PrintKeyBool("sparseResidencyAliased", static_cast<bool>(obj
.sparseResidencyAliased
));
1956 p
.PrintKeyBool("variableMultisampleRate", static_cast<bool>(obj
.variableMultisampleRate
));
1957 p
.PrintKeyBool("inheritedQueries", static_cast<bool>(obj
.inheritedQueries
));
1959 void DumpVkPhysicalDeviceFloatControlsProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceFloatControlsProperties
&obj
) {
1960 ObjectWrapper object
{p
, name
};
1961 p
.SetMinKeyWidth(37);
1962 DumpVkShaderFloatControlsIndependence(p
, "denormBehaviorIndependence", obj
.denormBehaviorIndependence
);
1963 DumpVkShaderFloatControlsIndependence(p
, "roundingModeIndependence", obj
.roundingModeIndependence
);
1964 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat16", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat16
));
1965 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat32", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat32
));
1966 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat64", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat64
));
1967 p
.PrintKeyBool("shaderDenormPreserveFloat16", static_cast<bool>(obj
.shaderDenormPreserveFloat16
));
1968 p
.PrintKeyBool("shaderDenormPreserveFloat32", static_cast<bool>(obj
.shaderDenormPreserveFloat32
));
1969 p
.PrintKeyBool("shaderDenormPreserveFloat64", static_cast<bool>(obj
.shaderDenormPreserveFloat64
));
1970 p
.PrintKeyBool("shaderDenormFlushToZeroFloat16", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat16
));
1971 p
.PrintKeyBool("shaderDenormFlushToZeroFloat32", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat32
));
1972 p
.PrintKeyBool("shaderDenormFlushToZeroFloat64", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat64
));
1973 p
.PrintKeyBool("shaderRoundingModeRTEFloat16", static_cast<bool>(obj
.shaderRoundingModeRTEFloat16
));
1974 p
.PrintKeyBool("shaderRoundingModeRTEFloat32", static_cast<bool>(obj
.shaderRoundingModeRTEFloat32
));
1975 p
.PrintKeyBool("shaderRoundingModeRTEFloat64", static_cast<bool>(obj
.shaderRoundingModeRTEFloat64
));
1976 p
.PrintKeyBool("shaderRoundingModeRTZFloat16", static_cast<bool>(obj
.shaderRoundingModeRTZFloat16
));
1977 p
.PrintKeyBool("shaderRoundingModeRTZFloat32", static_cast<bool>(obj
.shaderRoundingModeRTZFloat32
));
1978 p
.PrintKeyBool("shaderRoundingModeRTZFloat64", static_cast<bool>(obj
.shaderRoundingModeRTZFloat64
));
1980 void DumpVkPhysicalDeviceFragmentDensityMap2FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
&obj
) {
1981 ObjectWrapper object
{p
, name
};
1982 p
.SetMinKeyWidth(26);
1983 p
.PrintKeyBool("fragmentDensityMapDeferred", static_cast<bool>(obj
.fragmentDensityMapDeferred
));
1985 void DumpVkPhysicalDeviceFragmentDensityMap2PropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
&obj
) {
1986 ObjectWrapper object
{p
, name
};
1987 p
.SetMinKeyWidth(41);
1988 p
.PrintKeyBool("subsampledLoads", static_cast<bool>(obj
.subsampledLoads
));
1989 p
.PrintKeyBool("subsampledCoarseReconstructionEarlyAccess", static_cast<bool>(obj
.subsampledCoarseReconstructionEarlyAccess
));
1990 p
.PrintKeyValue("maxSubsampledArrayLayers", obj
.maxSubsampledArrayLayers
);
1991 p
.PrintKeyValue("maxDescriptorSetSubsampledSamplers", obj
.maxDescriptorSetSubsampledSamplers
);
1993 void DumpVkPhysicalDeviceFragmentDensityMapFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentDensityMapFeaturesEXT
&obj
) {
1994 ObjectWrapper object
{p
, name
};
1995 p
.SetMinKeyWidth(37);
1996 p
.PrintKeyBool("fragmentDensityMap", static_cast<bool>(obj
.fragmentDensityMap
));
1997 p
.PrintKeyBool("fragmentDensityMapDynamic", static_cast<bool>(obj
.fragmentDensityMapDynamic
));
1998 p
.PrintKeyBool("fragmentDensityMapNonSubsampledImages", static_cast<bool>(obj
.fragmentDensityMapNonSubsampledImages
));
2000 void DumpVkPhysicalDeviceFragmentDensityMapPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentDensityMapPropertiesEXT
&obj
) {
2001 ObjectWrapper object
{p
, name
};
2002 p
.SetMinKeyWidth(26);
2003 DumpVkExtent2D(p
, "minFragmentDensityTexelSize", obj
.minFragmentDensityTexelSize
);
2004 DumpVkExtent2D(p
, "maxFragmentDensityTexelSize", obj
.maxFragmentDensityTexelSize
);
2005 p
.PrintKeyBool("fragmentDensityInvocations", static_cast<bool>(obj
.fragmentDensityInvocations
));
2007 void DumpVkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
&obj
) {
2008 ObjectWrapper object
{p
, name
};
2009 p
.SetMinKeyWidth(25);
2010 p
.PrintKeyBool("fragmentShaderBarycentric", static_cast<bool>(obj
.fragmentShaderBarycentric
));
2012 void DumpVkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
&obj
) {
2013 ObjectWrapper object
{p
, name
};
2014 p
.SetMinKeyWidth(47);
2015 p
.PrintKeyBool("triStripVertexOrderIndependentOfProvokingVertex", static_cast<bool>(obj
.triStripVertexOrderIndependentOfProvokingVertex
));
2017 void DumpVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
&obj
) {
2018 ObjectWrapper object
{p
, name
};
2019 p
.SetMinKeyWidth(34);
2020 p
.PrintKeyBool("fragmentShaderSampleInterlock", static_cast<bool>(obj
.fragmentShaderSampleInterlock
));
2021 p
.PrintKeyBool("fragmentShaderPixelInterlock", static_cast<bool>(obj
.fragmentShaderPixelInterlock
));
2022 p
.PrintKeyBool("fragmentShaderShadingRateInterlock", static_cast<bool>(obj
.fragmentShaderShadingRateInterlock
));
2024 void DumpVkPhysicalDeviceFragmentShadingRateFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShadingRateFeaturesKHR
&obj
) {
2025 ObjectWrapper object
{p
, name
};
2026 p
.SetMinKeyWidth(29);
2027 p
.PrintKeyBool("pipelineFragmentShadingRate", static_cast<bool>(obj
.pipelineFragmentShadingRate
));
2028 p
.PrintKeyBool("primitiveFragmentShadingRate", static_cast<bool>(obj
.primitiveFragmentShadingRate
));
2029 p
.PrintKeyBool("attachmentFragmentShadingRate", static_cast<bool>(obj
.attachmentFragmentShadingRate
));
2031 void DumpVkPhysicalDeviceFragmentShadingRatePropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceFragmentShadingRatePropertiesKHR
&obj
) {
2032 ObjectWrapper object
{p
, name
};
2033 p
.SetMinKeyWidth(52);
2034 DumpVkExtent2D(p
, "minFragmentShadingRateAttachmentTexelSize", obj
.minFragmentShadingRateAttachmentTexelSize
);
2035 DumpVkExtent2D(p
, "maxFragmentShadingRateAttachmentTexelSize", obj
.maxFragmentShadingRateAttachmentTexelSize
);
2036 p
.PrintKeyValue("maxFragmentShadingRateAttachmentTexelSizeAspectRatio", obj
.maxFragmentShadingRateAttachmentTexelSizeAspectRatio
);
2037 p
.PrintKeyBool("primitiveFragmentShadingRateWithMultipleViewports", static_cast<bool>(obj
.primitiveFragmentShadingRateWithMultipleViewports
));
2038 p
.PrintKeyBool("layeredShadingRateAttachments", static_cast<bool>(obj
.layeredShadingRateAttachments
));
2039 p
.PrintKeyBool("fragmentShadingRateNonTrivialCombinerOps", static_cast<bool>(obj
.fragmentShadingRateNonTrivialCombinerOps
));
2040 DumpVkExtent2D(p
, "maxFragmentSize", obj
.maxFragmentSize
);
2041 p
.PrintKeyValue("maxFragmentSizeAspectRatio", obj
.maxFragmentSizeAspectRatio
);
2042 p
.PrintKeyValue("maxFragmentShadingRateCoverageSamples", obj
.maxFragmentShadingRateCoverageSamples
);
2043 DumpVkSampleCountFlagBits(p
, "maxFragmentShadingRateRasterizationSamples", obj
.maxFragmentShadingRateRasterizationSamples
);
2044 p
.PrintKeyBool("fragmentShadingRateWithShaderDepthStencilWrites", static_cast<bool>(obj
.fragmentShadingRateWithShaderDepthStencilWrites
));
2045 p
.PrintKeyBool("fragmentShadingRateWithSampleMask", static_cast<bool>(obj
.fragmentShadingRateWithSampleMask
));
2046 p
.PrintKeyBool("fragmentShadingRateWithShaderSampleMask", static_cast<bool>(obj
.fragmentShadingRateWithShaderSampleMask
));
2047 p
.PrintKeyBool("fragmentShadingRateWithConservativeRasterization", static_cast<bool>(obj
.fragmentShadingRateWithConservativeRasterization
));
2048 p
.PrintKeyBool("fragmentShadingRateWithFragmentShaderInterlock", static_cast<bool>(obj
.fragmentShadingRateWithFragmentShaderInterlock
));
2049 p
.PrintKeyBool("fragmentShadingRateWithCustomSampleLocations", static_cast<bool>(obj
.fragmentShadingRateWithCustomSampleLocations
));
2050 p
.PrintKeyBool("fragmentShadingRateStrictMultiplyCombiner", static_cast<bool>(obj
.fragmentShadingRateStrictMultiplyCombiner
));
2052 void DumpVkPhysicalDeviceFrameBoundaryFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceFrameBoundaryFeaturesEXT
&obj
) {
2053 ObjectWrapper object
{p
, name
};
2054 p
.SetMinKeyWidth(13);
2055 p
.PrintKeyBool("frameBoundary", static_cast<bool>(obj
.frameBoundary
));
2057 void DumpVkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR
&obj
) {
2058 ObjectWrapper object
{p
, name
};
2059 p
.SetMinKeyWidth(19);
2060 p
.PrintKeyBool("globalPriorityQuery", static_cast<bool>(obj
.globalPriorityQuery
));
2062 void DumpVkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
&obj
) {
2063 ObjectWrapper object
{p
, name
};
2064 p
.SetMinKeyWidth(23);
2065 p
.PrintKeyBool("graphicsPipelineLibrary", static_cast<bool>(obj
.graphicsPipelineLibrary
));
2067 void DumpVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
&obj
) {
2068 ObjectWrapper object
{p
, name
};
2069 p
.SetMinKeyWidth(57);
2070 p
.PrintKeyBool("graphicsPipelineLibraryFastLinking", static_cast<bool>(obj
.graphicsPipelineLibraryFastLinking
));
2071 p
.PrintKeyBool("graphicsPipelineLibraryIndependentInterpolationDecoration", static_cast<bool>(obj
.graphicsPipelineLibraryIndependentInterpolationDecoration
));
2073 void DumpVkPhysicalDeviceHostImageCopyFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceHostImageCopyFeaturesEXT
&obj
) {
2074 ObjectWrapper object
{p
, name
};
2075 p
.SetMinKeyWidth(13);
2076 p
.PrintKeyBool("hostImageCopy", static_cast<bool>(obj
.hostImageCopy
));
2078 void DumpVkPhysicalDeviceHostImageCopyPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceHostImageCopyPropertiesEXT
&obj
) {
2079 ObjectWrapper object
{p
, name
};
2080 p
.SetMinKeyWidth(35);
2081 p
.PrintKeyValue("copySrcLayoutCount", obj
.copySrcLayoutCount
);
2082 if (obj
.copySrcLayoutCount
== 0 || obj
.pCopySrcLayouts
== nullptr) {
2083 p
.PrintKeyString("pCopySrcLayouts", "NULL");
2085 ArrayWrapper
arr(p
,"pCopySrcLayouts", obj
.copySrcLayoutCount
);
2086 for (uint32_t i
= 0; i
< obj
.copySrcLayoutCount
; i
++) {
2087 DumpVkImageLayout(p
, std::to_string(i
), obj
.pCopySrcLayouts
[i
]);
2090 p
.PrintKeyValue("copyDstLayoutCount", obj
.copyDstLayoutCount
);
2091 if (obj
.copyDstLayoutCount
== 0 || obj
.pCopyDstLayouts
== nullptr) {
2092 p
.PrintKeyString("pCopyDstLayouts", "NULL");
2094 ArrayWrapper
arr(p
,"pCopyDstLayouts", obj
.copyDstLayoutCount
);
2095 for (uint32_t i
= 0; i
< obj
.copyDstLayoutCount
; i
++) {
2096 DumpVkImageLayout(p
, std::to_string(i
), obj
.pCopyDstLayouts
[i
]);
2099 p
.PrintKeyValue("optimalTilingLayoutUUID", obj
.optimalTilingLayoutUUID
);
2100 p
.PrintKeyBool("identicalMemoryTypeRequirements", static_cast<bool>(obj
.identicalMemoryTypeRequirements
));
2102 void DumpVkPhysicalDeviceHostQueryResetFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceHostQueryResetFeatures
&obj
) {
2103 ObjectWrapper object
{p
, name
};
2104 p
.SetMinKeyWidth(14);
2105 p
.PrintKeyBool("hostQueryReset", static_cast<bool>(obj
.hostQueryReset
));
2107 void DumpVkPhysicalDeviceIDProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceIDProperties
&obj
) {
2108 ObjectWrapper object
{p
, name
};
2109 p
.SetMinKeyWidth(15);
2110 p
.PrintKeyValue("deviceUUID", obj
.deviceUUID
);
2111 p
.PrintKeyValue("driverUUID", obj
.driverUUID
);
2112 if (obj
.deviceLUIDValid
) { // special case
2113 p
.PrintKeyValue("deviceLUID", obj
.deviceLUID
);
2115 p
.PrintKeyValue("deviceNodeMask", obj
.deviceNodeMask
);
2116 p
.PrintKeyBool("deviceLUIDValid", static_cast<bool>(obj
.deviceLUIDValid
));
2118 void DumpVkPhysicalDeviceImage2DViewOf3DFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
&obj
) {
2119 ObjectWrapper object
{p
, name
};
2120 p
.SetMinKeyWidth(17);
2121 p
.PrintKeyBool("image2DViewOf3D", static_cast<bool>(obj
.image2DViewOf3D
));
2122 p
.PrintKeyBool("sampler2DViewOf3D", static_cast<bool>(obj
.sampler2DViewOf3D
));
2124 void DumpVkPhysicalDeviceImageCompressionControlFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImageCompressionControlFeaturesEXT
&obj
) {
2125 ObjectWrapper object
{p
, name
};
2126 p
.SetMinKeyWidth(23);
2127 p
.PrintKeyBool("imageCompressionControl", static_cast<bool>(obj
.imageCompressionControl
));
2129 void DumpVkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
&obj
) {
2130 ObjectWrapper object
{p
, name
};
2131 p
.SetMinKeyWidth(32);
2132 p
.PrintKeyBool("imageCompressionControlSwapchain", static_cast<bool>(obj
.imageCompressionControlSwapchain
));
2134 void DumpVkPhysicalDeviceImageRobustnessFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceImageRobustnessFeatures
&obj
) {
2135 ObjectWrapper object
{p
, name
};
2136 p
.SetMinKeyWidth(17);
2137 p
.PrintKeyBool("robustImageAccess", static_cast<bool>(obj
.robustImageAccess
));
2139 void DumpVkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT
&obj
) {
2140 ObjectWrapper object
{p
, name
};
2141 p
.SetMinKeyWidth(19);
2142 p
.PrintKeyBool("imageSlicedViewOf3D", static_cast<bool>(obj
.imageSlicedViewOf3D
));
2144 void DumpVkPhysicalDeviceImageViewMinLodFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceImageViewMinLodFeaturesEXT
&obj
) {
2145 ObjectWrapper object
{p
, name
};
2146 p
.SetMinKeyWidth(6);
2147 p
.PrintKeyBool("minLod", static_cast<bool>(obj
.minLod
));
2149 void DumpVkPhysicalDeviceImagelessFramebufferFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceImagelessFramebufferFeatures
&obj
) {
2150 ObjectWrapper object
{p
, name
};
2151 p
.SetMinKeyWidth(20);
2152 p
.PrintKeyBool("imagelessFramebuffer", static_cast<bool>(obj
.imagelessFramebuffer
));
2154 void DumpVkPhysicalDeviceIndexTypeUint8FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceIndexTypeUint8FeaturesKHR
&obj
) {
2155 ObjectWrapper object
{p
, name
};
2156 p
.SetMinKeyWidth(14);
2157 p
.PrintKeyBool("indexTypeUint8", static_cast<bool>(obj
.indexTypeUint8
));
2159 void DumpVkPhysicalDeviceInlineUniformBlockFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceInlineUniformBlockFeatures
&obj
) {
2160 ObjectWrapper object
{p
, name
};
2161 p
.SetMinKeyWidth(50);
2162 p
.PrintKeyBool("inlineUniformBlock", static_cast<bool>(obj
.inlineUniformBlock
));
2163 p
.PrintKeyBool("descriptorBindingInlineUniformBlockUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingInlineUniformBlockUpdateAfterBind
));
2165 void DumpVkPhysicalDeviceInlineUniformBlockProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceInlineUniformBlockProperties
&obj
) {
2166 ObjectWrapper object
{p
, name
};
2167 p
.SetMinKeyWidth(55);
2168 p
.PrintKeyValue("maxInlineUniformBlockSize", obj
.maxInlineUniformBlockSize
);
2169 p
.PrintKeyValue("maxPerStageDescriptorInlineUniformBlocks", obj
.maxPerStageDescriptorInlineUniformBlocks
);
2170 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks", obj
.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
);
2171 p
.PrintKeyValue("maxDescriptorSetInlineUniformBlocks", obj
.maxDescriptorSetInlineUniformBlocks
);
2172 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindInlineUniformBlocks", obj
.maxDescriptorSetUpdateAfterBindInlineUniformBlocks
);
2174 void DumpVkPhysicalDeviceLayeredApiPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceLayeredApiPropertiesKHR
&obj
) {
2175 ObjectWrapper object
{p
, name
};
2176 p
.SetMinKeyWidth(15);
2177 p
.PrintKeyValue("vendorID", obj
.vendorID
);
2178 p
.PrintKeyValue("deviceID", obj
.deviceID
);
2179 DumpVkPhysicalDeviceLayeredApiKHR(p
, "layeredAPI", obj
.layeredAPI
);
2180 p
.PrintKeyString("deviceName", obj
.deviceName
);
2182 void DumpVkPhysicalDeviceLayeredApiPropertiesListKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceLayeredApiPropertiesListKHR
&obj
) {
2183 ObjectWrapper object
{p
, name
};
2184 p
.SetMinKeyWidth(29);
2185 p
.PrintKeyValue("layeredApiCount", obj
.layeredApiCount
);
2186 if (obj
.layeredApiCount
== 0 || obj
.pLayeredApis
== nullptr) {
2187 p
.PrintKeyString("pLayeredApis", "NULL");
2189 ArrayWrapper
arr(p
,"pLayeredApis", obj
.layeredApiCount
);
2190 for (uint32_t i
= 0; i
< obj
.layeredApiCount
; i
++) {
2191 DumpVkPhysicalDeviceLayeredApiPropertiesKHR(p
, std::to_string(i
), obj
.pLayeredApis
[i
]);
2195 void DumpVkPhysicalDeviceLegacyDitheringFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceLegacyDitheringFeaturesEXT
&obj
) {
2196 ObjectWrapper object
{p
, name
};
2197 p
.SetMinKeyWidth(15);
2198 p
.PrintKeyBool("legacyDithering", static_cast<bool>(obj
.legacyDithering
));
2200 void DumpVkPhysicalDeviceLegacyVertexAttributesFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT
&obj
) {
2201 ObjectWrapper object
{p
, name
};
2202 p
.SetMinKeyWidth(22);
2203 p
.PrintKeyBool("legacyVertexAttributes", static_cast<bool>(obj
.legacyVertexAttributes
));
2205 void DumpVkPhysicalDeviceLegacyVertexAttributesPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT
&obj
) {
2206 ObjectWrapper object
{p
, name
};
2207 p
.SetMinKeyWidth(26);
2208 p
.PrintKeyBool("nativeUnalignedPerformance", static_cast<bool>(obj
.nativeUnalignedPerformance
));
2210 void DumpVkPhysicalDeviceLimits(Printer
&p
, std::string name
, const VkPhysicalDeviceLimits
&obj
) {
2211 if (p
.Type() == OutputType::json
)
2212 p
.ObjectStart("limits");
2214 p
.SetSubHeader().ObjectStart(name
);
2215 p
.SetMinKeyWidth(47);
2216 p
.PrintKeyValue("maxImageDimension1D", obj
.maxImageDimension1D
);
2217 p
.PrintKeyValue("maxImageDimension2D", obj
.maxImageDimension2D
);
2218 p
.PrintKeyValue("maxImageDimension3D", obj
.maxImageDimension3D
);
2219 p
.PrintKeyValue("maxImageDimensionCube", obj
.maxImageDimensionCube
);
2220 p
.PrintKeyValue("maxImageArrayLayers", obj
.maxImageArrayLayers
);
2221 p
.PrintKeyValue("maxTexelBufferElements", obj
.maxTexelBufferElements
);
2222 p
.PrintKeyValue("maxUniformBufferRange", obj
.maxUniformBufferRange
);
2223 p
.PrintKeyValue("maxStorageBufferRange", obj
.maxStorageBufferRange
);
2224 p
.PrintKeyValue("maxPushConstantsSize", obj
.maxPushConstantsSize
);
2225 p
.PrintKeyValue("maxMemoryAllocationCount", obj
.maxMemoryAllocationCount
);
2226 p
.PrintKeyValue("maxSamplerAllocationCount", obj
.maxSamplerAllocationCount
);
2227 p
.PrintKeyValue("bufferImageGranularity", to_hex_str(p
, obj
.bufferImageGranularity
));
2228 p
.PrintKeyValue("sparseAddressSpaceSize", to_hex_str(p
, obj
.sparseAddressSpaceSize
));
2229 p
.PrintKeyValue("maxBoundDescriptorSets", obj
.maxBoundDescriptorSets
);
2230 p
.PrintKeyValue("maxPerStageDescriptorSamplers", obj
.maxPerStageDescriptorSamplers
);
2231 p
.PrintKeyValue("maxPerStageDescriptorUniformBuffers", obj
.maxPerStageDescriptorUniformBuffers
);
2232 p
.PrintKeyValue("maxPerStageDescriptorStorageBuffers", obj
.maxPerStageDescriptorStorageBuffers
);
2233 p
.PrintKeyValue("maxPerStageDescriptorSampledImages", obj
.maxPerStageDescriptorSampledImages
);
2234 p
.PrintKeyValue("maxPerStageDescriptorStorageImages", obj
.maxPerStageDescriptorStorageImages
);
2235 p
.PrintKeyValue("maxPerStageDescriptorInputAttachments", obj
.maxPerStageDescriptorInputAttachments
);
2236 p
.PrintKeyValue("maxPerStageResources", obj
.maxPerStageResources
);
2237 p
.PrintKeyValue("maxDescriptorSetSamplers", obj
.maxDescriptorSetSamplers
);
2238 p
.PrintKeyValue("maxDescriptorSetUniformBuffers", obj
.maxDescriptorSetUniformBuffers
);
2239 p
.PrintKeyValue("maxDescriptorSetUniformBuffersDynamic", obj
.maxDescriptorSetUniformBuffersDynamic
);
2240 p
.PrintKeyValue("maxDescriptorSetStorageBuffers", obj
.maxDescriptorSetStorageBuffers
);
2241 p
.PrintKeyValue("maxDescriptorSetStorageBuffersDynamic", obj
.maxDescriptorSetStorageBuffersDynamic
);
2242 p
.PrintKeyValue("maxDescriptorSetSampledImages", obj
.maxDescriptorSetSampledImages
);
2243 p
.PrintKeyValue("maxDescriptorSetStorageImages", obj
.maxDescriptorSetStorageImages
);
2244 p
.PrintKeyValue("maxDescriptorSetInputAttachments", obj
.maxDescriptorSetInputAttachments
);
2245 p
.PrintKeyValue("maxVertexInputAttributes", obj
.maxVertexInputAttributes
);
2246 p
.PrintKeyValue("maxVertexInputBindings", obj
.maxVertexInputBindings
);
2247 p
.PrintKeyValue("maxVertexInputAttributeOffset", obj
.maxVertexInputAttributeOffset
);
2248 p
.PrintKeyValue("maxVertexInputBindingStride", obj
.maxVertexInputBindingStride
);
2249 p
.PrintKeyValue("maxVertexOutputComponents", obj
.maxVertexOutputComponents
);
2250 p
.PrintKeyValue("maxTessellationGenerationLevel", obj
.maxTessellationGenerationLevel
);
2251 p
.PrintKeyValue("maxTessellationPatchSize", obj
.maxTessellationPatchSize
);
2252 p
.PrintKeyValue("maxTessellationControlPerVertexInputComponents", obj
.maxTessellationControlPerVertexInputComponents
);
2253 p
.PrintKeyValue("maxTessellationControlPerVertexOutputComponents", obj
.maxTessellationControlPerVertexOutputComponents
);
2254 p
.PrintKeyValue("maxTessellationControlPerPatchOutputComponents", obj
.maxTessellationControlPerPatchOutputComponents
);
2255 p
.PrintKeyValue("maxTessellationControlTotalOutputComponents", obj
.maxTessellationControlTotalOutputComponents
);
2256 p
.PrintKeyValue("maxTessellationEvaluationInputComponents", obj
.maxTessellationEvaluationInputComponents
);
2257 p
.PrintKeyValue("maxTessellationEvaluationOutputComponents", obj
.maxTessellationEvaluationOutputComponents
);
2258 p
.PrintKeyValue("maxGeometryShaderInvocations", obj
.maxGeometryShaderInvocations
);
2259 p
.PrintKeyValue("maxGeometryInputComponents", obj
.maxGeometryInputComponents
);
2260 p
.PrintKeyValue("maxGeometryOutputComponents", obj
.maxGeometryOutputComponents
);
2261 p
.PrintKeyValue("maxGeometryOutputVertices", obj
.maxGeometryOutputVertices
);
2262 p
.PrintKeyValue("maxGeometryTotalOutputComponents", obj
.maxGeometryTotalOutputComponents
);
2263 p
.PrintKeyValue("maxFragmentInputComponents", obj
.maxFragmentInputComponents
);
2264 p
.PrintKeyValue("maxFragmentOutputAttachments", obj
.maxFragmentOutputAttachments
);
2265 p
.PrintKeyValue("maxFragmentDualSrcAttachments", obj
.maxFragmentDualSrcAttachments
);
2266 p
.PrintKeyValue("maxFragmentCombinedOutputResources", obj
.maxFragmentCombinedOutputResources
);
2267 p
.PrintKeyValue("maxComputeSharedMemorySize", obj
.maxComputeSharedMemorySize
);
2269 ArrayWrapper
arr(p
,"maxComputeWorkGroupCount", 3);
2270 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxComputeWorkGroupCount
[i
]); }
2272 p
.PrintKeyValue("maxComputeWorkGroupInvocations", obj
.maxComputeWorkGroupInvocations
);
2274 ArrayWrapper
arr(p
,"maxComputeWorkGroupSize", 3);
2275 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxComputeWorkGroupSize
[i
]); }
2277 p
.PrintKeyValue("subPixelPrecisionBits", obj
.subPixelPrecisionBits
);
2278 p
.PrintKeyValue("subTexelPrecisionBits", obj
.subTexelPrecisionBits
);
2279 p
.PrintKeyValue("mipmapPrecisionBits", obj
.mipmapPrecisionBits
);
2280 p
.PrintKeyValue("maxDrawIndexedIndexValue", obj
.maxDrawIndexedIndexValue
);
2281 p
.PrintKeyValue("maxDrawIndirectCount", obj
.maxDrawIndirectCount
);
2282 p
.PrintKeyValue("maxSamplerLodBias", obj
.maxSamplerLodBias
);
2283 p
.PrintKeyValue("maxSamplerAnisotropy", obj
.maxSamplerAnisotropy
);
2284 p
.PrintKeyValue("maxViewports", obj
.maxViewports
);
2286 ArrayWrapper
arr(p
,"maxViewportDimensions", 2);
2287 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.maxViewportDimensions
[i
]); }
2290 ArrayWrapper
arr(p
,"viewportBoundsRange", 2);
2291 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.viewportBoundsRange
[i
]); }
2293 p
.PrintKeyValue("viewportSubPixelBits", obj
.viewportSubPixelBits
);
2294 p
.PrintKeyValue("minMemoryMapAlignment", obj
.minMemoryMapAlignment
);
2295 p
.PrintKeyValue("minTexelBufferOffsetAlignment", to_hex_str(p
, obj
.minTexelBufferOffsetAlignment
));
2296 p
.PrintKeyValue("minUniformBufferOffsetAlignment", to_hex_str(p
, obj
.minUniformBufferOffsetAlignment
));
2297 p
.PrintKeyValue("minStorageBufferOffsetAlignment", to_hex_str(p
, obj
.minStorageBufferOffsetAlignment
));
2298 p
.PrintKeyValue("minTexelOffset", obj
.minTexelOffset
);
2299 p
.PrintKeyValue("maxTexelOffset", obj
.maxTexelOffset
);
2300 p
.PrintKeyValue("minTexelGatherOffset", obj
.minTexelGatherOffset
);
2301 p
.PrintKeyValue("maxTexelGatherOffset", obj
.maxTexelGatherOffset
);
2302 p
.PrintKeyValue("minInterpolationOffset", obj
.minInterpolationOffset
);
2303 p
.PrintKeyValue("maxInterpolationOffset", obj
.maxInterpolationOffset
);
2304 p
.PrintKeyValue("subPixelInterpolationOffsetBits", obj
.subPixelInterpolationOffsetBits
);
2305 p
.PrintKeyValue("maxFramebufferWidth", obj
.maxFramebufferWidth
);
2306 p
.PrintKeyValue("maxFramebufferHeight", obj
.maxFramebufferHeight
);
2307 p
.PrintKeyValue("maxFramebufferLayers", obj
.maxFramebufferLayers
);
2308 DumpVkSampleCountFlags(p
, "framebufferColorSampleCounts", obj
.framebufferColorSampleCounts
);
2309 DumpVkSampleCountFlags(p
, "framebufferDepthSampleCounts", obj
.framebufferDepthSampleCounts
);
2310 DumpVkSampleCountFlags(p
, "framebufferStencilSampleCounts", obj
.framebufferStencilSampleCounts
);
2311 DumpVkSampleCountFlags(p
, "framebufferNoAttachmentsSampleCounts", obj
.framebufferNoAttachmentsSampleCounts
);
2312 p
.PrintKeyValue("maxColorAttachments", obj
.maxColorAttachments
);
2313 DumpVkSampleCountFlags(p
, "sampledImageColorSampleCounts", obj
.sampledImageColorSampleCounts
);
2314 DumpVkSampleCountFlags(p
, "sampledImageIntegerSampleCounts", obj
.sampledImageIntegerSampleCounts
);
2315 DumpVkSampleCountFlags(p
, "sampledImageDepthSampleCounts", obj
.sampledImageDepthSampleCounts
);
2316 DumpVkSampleCountFlags(p
, "sampledImageStencilSampleCounts", obj
.sampledImageStencilSampleCounts
);
2317 DumpVkSampleCountFlags(p
, "storageImageSampleCounts", obj
.storageImageSampleCounts
);
2318 p
.PrintKeyValue("maxSampleMaskWords", obj
.maxSampleMaskWords
);
2319 p
.PrintKeyBool("timestampComputeAndGraphics", static_cast<bool>(obj
.timestampComputeAndGraphics
));
2320 p
.PrintKeyValue("timestampPeriod", obj
.timestampPeriod
);
2321 p
.PrintKeyValue("maxClipDistances", obj
.maxClipDistances
);
2322 p
.PrintKeyValue("maxCullDistances", obj
.maxCullDistances
);
2323 p
.PrintKeyValue("maxCombinedClipAndCullDistances", obj
.maxCombinedClipAndCullDistances
);
2324 p
.PrintKeyValue("discreteQueuePriorities", obj
.discreteQueuePriorities
);
2326 ArrayWrapper
arr(p
,"pointSizeRange", 2);
2327 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.pointSizeRange
[i
]); }
2330 ArrayWrapper
arr(p
,"lineWidthRange", 2);
2331 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.lineWidthRange
[i
]); }
2333 p
.PrintKeyValue("pointSizeGranularity", obj
.pointSizeGranularity
);
2334 p
.PrintKeyValue("lineWidthGranularity", obj
.lineWidthGranularity
);
2335 p
.PrintKeyBool("strictLines", static_cast<bool>(obj
.strictLines
));
2336 p
.PrintKeyBool("standardSampleLocations", static_cast<bool>(obj
.standardSampleLocations
));
2337 p
.PrintKeyValue("optimalBufferCopyOffsetAlignment", to_hex_str(p
, obj
.optimalBufferCopyOffsetAlignment
));
2338 p
.PrintKeyValue("optimalBufferCopyRowPitchAlignment", to_hex_str(p
, obj
.optimalBufferCopyRowPitchAlignment
));
2339 p
.PrintKeyValue("nonCoherentAtomSize", to_hex_str(p
, obj
.nonCoherentAtomSize
));
2342 void DumpVkPhysicalDeviceLineRasterizationFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceLineRasterizationFeaturesKHR
&obj
) {
2343 ObjectWrapper object
{p
, name
};
2344 p
.SetMinKeyWidth(24);
2345 p
.PrintKeyBool("rectangularLines", static_cast<bool>(obj
.rectangularLines
));
2346 p
.PrintKeyBool("bresenhamLines", static_cast<bool>(obj
.bresenhamLines
));
2347 p
.PrintKeyBool("smoothLines", static_cast<bool>(obj
.smoothLines
));
2348 p
.PrintKeyBool("stippledRectangularLines", static_cast<bool>(obj
.stippledRectangularLines
));
2349 p
.PrintKeyBool("stippledBresenhamLines", static_cast<bool>(obj
.stippledBresenhamLines
));
2350 p
.PrintKeyBool("stippledSmoothLines", static_cast<bool>(obj
.stippledSmoothLines
));
2352 void DumpVkPhysicalDeviceLineRasterizationPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceLineRasterizationPropertiesKHR
&obj
) {
2353 ObjectWrapper object
{p
, name
};
2354 p
.SetMinKeyWidth(25);
2355 p
.PrintKeyValue("lineSubPixelPrecisionBits", obj
.lineSubPixelPrecisionBits
);
2357 void DumpVkPhysicalDeviceMaintenance3Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance3Properties
&obj
) {
2358 ObjectWrapper object
{p
, name
};
2359 p
.SetMinKeyWidth(23);
2360 p
.PrintKeyValue("maxPerSetDescriptors", obj
.maxPerSetDescriptors
);
2361 p
.PrintKeyValue("maxMemoryAllocationSize", to_hex_str(p
, obj
.maxMemoryAllocationSize
));
2363 void DumpVkPhysicalDeviceMaintenance4Features(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance4Features
&obj
) {
2364 ObjectWrapper object
{p
, name
};
2365 p
.SetMinKeyWidth(12);
2366 p
.PrintKeyBool("maintenance4", static_cast<bool>(obj
.maintenance4
));
2368 void DumpVkPhysicalDeviceMaintenance4Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance4Properties
&obj
) {
2369 ObjectWrapper object
{p
, name
};
2370 p
.SetMinKeyWidth(13);
2371 p
.PrintKeyValue("maxBufferSize", to_hex_str(p
, obj
.maxBufferSize
));
2373 void DumpVkPhysicalDeviceMaintenance5FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance5FeaturesKHR
&obj
) {
2374 ObjectWrapper object
{p
, name
};
2375 p
.SetMinKeyWidth(12);
2376 p
.PrintKeyBool("maintenance5", static_cast<bool>(obj
.maintenance5
));
2378 void DumpVkPhysicalDeviceMaintenance5PropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance5PropertiesKHR
&obj
) {
2379 ObjectWrapper object
{p
, name
};
2380 p
.SetMinKeyWidth(51);
2381 p
.PrintKeyBool("earlyFragmentMultisampleCoverageAfterSampleCounting", static_cast<bool>(obj
.earlyFragmentMultisampleCoverageAfterSampleCounting
));
2382 p
.PrintKeyBool("earlyFragmentSampleMaskTestBeforeSampleCounting", static_cast<bool>(obj
.earlyFragmentSampleMaskTestBeforeSampleCounting
));
2383 p
.PrintKeyBool("depthStencilSwizzleOneSupport", static_cast<bool>(obj
.depthStencilSwizzleOneSupport
));
2384 p
.PrintKeyBool("polygonModePointSize", static_cast<bool>(obj
.polygonModePointSize
));
2385 p
.PrintKeyBool("nonStrictSinglePixelWideLinesUseParallelogram", static_cast<bool>(obj
.nonStrictSinglePixelWideLinesUseParallelogram
));
2386 p
.PrintKeyBool("nonStrictWideLinesUseParallelogram", static_cast<bool>(obj
.nonStrictWideLinesUseParallelogram
));
2388 void DumpVkPhysicalDeviceMaintenance6FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance6FeaturesKHR
&obj
) {
2389 ObjectWrapper object
{p
, name
};
2390 p
.SetMinKeyWidth(12);
2391 p
.PrintKeyBool("maintenance6", static_cast<bool>(obj
.maintenance6
));
2393 void DumpVkPhysicalDeviceMaintenance6PropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance6PropertiesKHR
&obj
) {
2394 ObjectWrapper object
{p
, name
};
2395 p
.SetMinKeyWidth(38);
2396 p
.PrintKeyBool("blockTexelViewCompatibleMultipleLayers", static_cast<bool>(obj
.blockTexelViewCompatibleMultipleLayers
));
2397 p
.PrintKeyValue("maxCombinedImageSamplerDescriptorCount", obj
.maxCombinedImageSamplerDescriptorCount
);
2398 p
.PrintKeyBool("fragmentShadingRateClampCombinerInputs", static_cast<bool>(obj
.fragmentShadingRateClampCombinerInputs
));
2400 void DumpVkPhysicalDeviceMaintenance7FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance7FeaturesKHR
&obj
) {
2401 ObjectWrapper object
{p
, name
};
2402 p
.SetMinKeyWidth(12);
2403 p
.PrintKeyBool("maintenance7", static_cast<bool>(obj
.maintenance7
));
2405 void DumpVkPhysicalDeviceMaintenance7PropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceMaintenance7PropertiesKHR
&obj
) {
2406 ObjectWrapper object
{p
, name
};
2407 p
.SetMinKeyWidth(57);
2408 p
.PrintKeyBool("robustFragmentShadingRateAttachmentAccess", static_cast<bool>(obj
.robustFragmentShadingRateAttachmentAccess
));
2409 p
.PrintKeyBool("separateDepthStencilAttachmentAccess", static_cast<bool>(obj
.separateDepthStencilAttachmentAccess
));
2410 p
.PrintKeyValue("maxDescriptorSetTotalUniformBuffersDynamic", obj
.maxDescriptorSetTotalUniformBuffersDynamic
);
2411 p
.PrintKeyValue("maxDescriptorSetTotalStorageBuffersDynamic", obj
.maxDescriptorSetTotalStorageBuffersDynamic
);
2412 p
.PrintKeyValue("maxDescriptorSetTotalBuffersDynamic", obj
.maxDescriptorSetTotalBuffersDynamic
);
2413 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic
);
2414 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic
);
2415 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindTotalBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindTotalBuffersDynamic
);
2417 void DumpVkPhysicalDeviceMapMemoryPlacedFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMapMemoryPlacedFeaturesEXT
&obj
) {
2418 ObjectWrapper object
{p
, name
};
2419 p
.SetMinKeyWidth(20);
2420 p
.PrintKeyBool("memoryMapPlaced", static_cast<bool>(obj
.memoryMapPlaced
));
2421 p
.PrintKeyBool("memoryMapRangePlaced", static_cast<bool>(obj
.memoryMapRangePlaced
));
2422 p
.PrintKeyBool("memoryUnmapReserve", static_cast<bool>(obj
.memoryUnmapReserve
));
2424 void DumpVkPhysicalDeviceMapMemoryPlacedPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMapMemoryPlacedPropertiesEXT
&obj
) {
2425 ObjectWrapper object
{p
, name
};
2426 p
.SetMinKeyWidth(27);
2427 p
.PrintKeyValue("minPlacedMemoryMapAlignment", to_hex_str(p
, obj
.minPlacedMemoryMapAlignment
));
2429 void DumpVkPhysicalDeviceMemoryBudgetPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMemoryBudgetPropertiesEXT
&obj
) {
2430 ObjectWrapper object
{p
, name
};
2431 p
.SetMinKeyWidth(14);
2433 ArrayWrapper
arr(p
,"heapBudget", 16);
2434 for (uint32_t i
= 0; i
< 16; i
++) { p
.PrintElement(obj
.heapBudget
[i
]); }
2437 ArrayWrapper
arr(p
,"heapUsage", 16);
2438 for (uint32_t i
= 0; i
< 16; i
++) { p
.PrintElement(obj
.heapUsage
[i
]); }
2441 void DumpVkPhysicalDeviceMemoryPriorityFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMemoryPriorityFeaturesEXT
&obj
) {
2442 ObjectWrapper object
{p
, name
};
2443 p
.SetMinKeyWidth(14);
2444 p
.PrintKeyBool("memoryPriority", static_cast<bool>(obj
.memoryPriority
));
2446 void DumpVkPhysicalDeviceMeshShaderFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMeshShaderFeaturesEXT
&obj
) {
2447 ObjectWrapper object
{p
, name
};
2448 p
.SetMinKeyWidth(38);
2449 p
.PrintKeyBool("taskShader", static_cast<bool>(obj
.taskShader
));
2450 p
.PrintKeyBool("meshShader", static_cast<bool>(obj
.meshShader
));
2451 p
.PrintKeyBool("multiviewMeshShader", static_cast<bool>(obj
.multiviewMeshShader
));
2452 p
.PrintKeyBool("primitiveFragmentShadingRateMeshShader", static_cast<bool>(obj
.primitiveFragmentShadingRateMeshShader
));
2453 p
.PrintKeyBool("meshShaderQueries", static_cast<bool>(obj
.meshShaderQueries
));
2455 void DumpVkPhysicalDeviceMeshShaderPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMeshShaderPropertiesEXT
&obj
) {
2456 ObjectWrapper object
{p
, name
};
2457 p
.SetMinKeyWidth(37);
2458 p
.PrintKeyValue("maxTaskWorkGroupTotalCount", obj
.maxTaskWorkGroupTotalCount
);
2460 ArrayWrapper
arr(p
,"maxTaskWorkGroupCount", 3);
2461 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxTaskWorkGroupCount
[i
]); }
2463 p
.PrintKeyValue("maxTaskWorkGroupInvocations", obj
.maxTaskWorkGroupInvocations
);
2465 ArrayWrapper
arr(p
,"maxTaskWorkGroupSize", 3);
2466 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxTaskWorkGroupSize
[i
]); }
2468 p
.PrintKeyValue("maxTaskPayloadSize", obj
.maxTaskPayloadSize
);
2469 p
.PrintKeyValue("maxTaskSharedMemorySize", obj
.maxTaskSharedMemorySize
);
2470 p
.PrintKeyValue("maxTaskPayloadAndSharedMemorySize", obj
.maxTaskPayloadAndSharedMemorySize
);
2471 p
.PrintKeyValue("maxMeshWorkGroupTotalCount", obj
.maxMeshWorkGroupTotalCount
);
2473 ArrayWrapper
arr(p
,"maxMeshWorkGroupCount", 3);
2474 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxMeshWorkGroupCount
[i
]); }
2476 p
.PrintKeyValue("maxMeshWorkGroupInvocations", obj
.maxMeshWorkGroupInvocations
);
2478 ArrayWrapper
arr(p
,"maxMeshWorkGroupSize", 3);
2479 for (uint32_t i
= 0; i
< 3; i
++) { p
.PrintElement(obj
.maxMeshWorkGroupSize
[i
]); }
2481 p
.PrintKeyValue("maxMeshSharedMemorySize", obj
.maxMeshSharedMemorySize
);
2482 p
.PrintKeyValue("maxMeshPayloadAndSharedMemorySize", obj
.maxMeshPayloadAndSharedMemorySize
);
2483 p
.PrintKeyValue("maxMeshOutputMemorySize", obj
.maxMeshOutputMemorySize
);
2484 p
.PrintKeyValue("maxMeshPayloadAndOutputMemorySize", obj
.maxMeshPayloadAndOutputMemorySize
);
2485 p
.PrintKeyValue("maxMeshOutputComponents", obj
.maxMeshOutputComponents
);
2486 p
.PrintKeyValue("maxMeshOutputVertices", obj
.maxMeshOutputVertices
);
2487 p
.PrintKeyValue("maxMeshOutputPrimitives", obj
.maxMeshOutputPrimitives
);
2488 p
.PrintKeyValue("maxMeshOutputLayers", obj
.maxMeshOutputLayers
);
2489 p
.PrintKeyValue("maxMeshMultiviewViewCount", obj
.maxMeshMultiviewViewCount
);
2490 p
.PrintKeyValue("meshOutputPerVertexGranularity", obj
.meshOutputPerVertexGranularity
);
2491 p
.PrintKeyValue("meshOutputPerPrimitiveGranularity", obj
.meshOutputPerPrimitiveGranularity
);
2492 p
.PrintKeyValue("maxPreferredTaskWorkGroupInvocations", obj
.maxPreferredTaskWorkGroupInvocations
);
2493 p
.PrintKeyValue("maxPreferredMeshWorkGroupInvocations", obj
.maxPreferredMeshWorkGroupInvocations
);
2494 p
.PrintKeyBool("prefersLocalInvocationVertexOutput", static_cast<bool>(obj
.prefersLocalInvocationVertexOutput
));
2495 p
.PrintKeyBool("prefersLocalInvocationPrimitiveOutput", static_cast<bool>(obj
.prefersLocalInvocationPrimitiveOutput
));
2496 p
.PrintKeyBool("prefersCompactVertexOutput", static_cast<bool>(obj
.prefersCompactVertexOutput
));
2497 p
.PrintKeyBool("prefersCompactPrimitiveOutput", static_cast<bool>(obj
.prefersCompactPrimitiveOutput
));
2499 void DumpVkPhysicalDeviceMultiDrawFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMultiDrawFeaturesEXT
&obj
) {
2500 ObjectWrapper object
{p
, name
};
2501 p
.SetMinKeyWidth(9);
2502 p
.PrintKeyBool("multiDraw", static_cast<bool>(obj
.multiDraw
));
2504 void DumpVkPhysicalDeviceMultiDrawPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMultiDrawPropertiesEXT
&obj
) {
2505 ObjectWrapper object
{p
, name
};
2506 p
.SetMinKeyWidth(17);
2507 p
.PrintKeyValue("maxMultiDrawCount", obj
.maxMultiDrawCount
);
2509 void DumpVkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
&obj
) {
2510 ObjectWrapper object
{p
, name
};
2511 p
.SetMinKeyWidth(33);
2512 p
.PrintKeyBool("multisampledRenderToSingleSampled", static_cast<bool>(obj
.multisampledRenderToSingleSampled
));
2514 void DumpVkPhysicalDeviceMultiviewFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceMultiviewFeatures
&obj
) {
2515 ObjectWrapper object
{p
, name
};
2516 p
.SetMinKeyWidth(27);
2517 p
.PrintKeyBool("multiview", static_cast<bool>(obj
.multiview
));
2518 p
.PrintKeyBool("multiviewGeometryShader", static_cast<bool>(obj
.multiviewGeometryShader
));
2519 p
.PrintKeyBool("multiviewTessellationShader", static_cast<bool>(obj
.multiviewTessellationShader
));
2521 void DumpVkPhysicalDeviceMultiviewProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceMultiviewProperties
&obj
) {
2522 ObjectWrapper object
{p
, name
};
2523 p
.SetMinKeyWidth(25);
2524 p
.PrintKeyValue("maxMultiviewViewCount", obj
.maxMultiviewViewCount
);
2525 p
.PrintKeyValue("maxMultiviewInstanceIndex", obj
.maxMultiviewInstanceIndex
);
2527 void DumpVkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT
&obj
) {
2528 ObjectWrapper object
{p
, name
};
2529 p
.SetMinKeyWidth(21);
2530 p
.PrintKeyBool("mutableDescriptorType", static_cast<bool>(obj
.mutableDescriptorType
));
2532 void DumpVkPhysicalDeviceNestedCommandBufferFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceNestedCommandBufferFeaturesEXT
&obj
) {
2533 ObjectWrapper object
{p
, name
};
2534 p
.SetMinKeyWidth(34);
2535 p
.PrintKeyBool("nestedCommandBuffer", static_cast<bool>(obj
.nestedCommandBuffer
));
2536 p
.PrintKeyBool("nestedCommandBufferRendering", static_cast<bool>(obj
.nestedCommandBufferRendering
));
2537 p
.PrintKeyBool("nestedCommandBufferSimultaneousUse", static_cast<bool>(obj
.nestedCommandBufferSimultaneousUse
));
2539 void DumpVkPhysicalDeviceNestedCommandBufferPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceNestedCommandBufferPropertiesEXT
&obj
) {
2540 ObjectWrapper object
{p
, name
};
2541 p
.SetMinKeyWidth(28);
2542 p
.PrintKeyValue("maxCommandBufferNestingLevel", obj
.maxCommandBufferNestingLevel
);
2544 void DumpVkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
&obj
) {
2545 ObjectWrapper object
{p
, name
};
2546 p
.SetMinKeyWidth(18);
2547 p
.PrintKeyBool("nonSeamlessCubeMap", static_cast<bool>(obj
.nonSeamlessCubeMap
));
2549 void DumpVkPhysicalDeviceOpacityMicromapFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceOpacityMicromapFeaturesEXT
&obj
) {
2550 ObjectWrapper object
{p
, name
};
2551 p
.SetMinKeyWidth(21);
2552 p
.PrintKeyBool("micromap", static_cast<bool>(obj
.micromap
));
2553 p
.PrintKeyBool("micromapCaptureReplay", static_cast<bool>(obj
.micromapCaptureReplay
));
2554 p
.PrintKeyBool("micromapHostCommands", static_cast<bool>(obj
.micromapHostCommands
));
2556 void DumpVkPhysicalDeviceOpacityMicromapPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceOpacityMicromapPropertiesEXT
&obj
) {
2557 ObjectWrapper object
{p
, name
};
2558 p
.SetMinKeyWidth(32);
2559 p
.PrintKeyValue("maxOpacity2StateSubdivisionLevel", obj
.maxOpacity2StateSubdivisionLevel
);
2560 p
.PrintKeyValue("maxOpacity4StateSubdivisionLevel", obj
.maxOpacity4StateSubdivisionLevel
);
2562 void DumpVkPhysicalDevicePCIBusInfoPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePCIBusInfoPropertiesEXT
&obj
) {
2563 ObjectWrapper object
{p
, name
};
2564 p
.SetMinKeyWidth(11);
2565 p
.PrintKeyValue("pciDomain", obj
.pciDomain
);
2566 p
.PrintKeyValue("pciBus", obj
.pciBus
);
2567 p
.PrintKeyValue("pciDevice", obj
.pciDevice
);
2568 p
.PrintKeyValue("pciFunction", obj
.pciFunction
);
2570 void DumpVkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
&obj
) {
2571 ObjectWrapper object
{p
, name
};
2572 p
.SetMinKeyWidth(25);
2573 p
.PrintKeyBool("pageableDeviceLocalMemory", static_cast<bool>(obj
.pageableDeviceLocalMemory
));
2575 void DumpVkPhysicalDevicePerformanceQueryFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePerformanceQueryFeaturesKHR
&obj
) {
2576 ObjectWrapper object
{p
, name
};
2577 p
.SetMinKeyWidth(36);
2578 p
.PrintKeyBool("performanceCounterQueryPools", static_cast<bool>(obj
.performanceCounterQueryPools
));
2579 p
.PrintKeyBool("performanceCounterMultipleQueryPools", static_cast<bool>(obj
.performanceCounterMultipleQueryPools
));
2581 void DumpVkPhysicalDevicePerformanceQueryPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePerformanceQueryPropertiesKHR
&obj
) {
2582 ObjectWrapper object
{p
, name
};
2583 p
.SetMinKeyWidth(29);
2584 p
.PrintKeyBool("allowCommandBufferQueryCopies", static_cast<bool>(obj
.allowCommandBufferQueryCopies
));
2586 void DumpVkPhysicalDevicePipelineBinaryFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineBinaryFeaturesKHR
&obj
) {
2587 ObjectWrapper object
{p
, name
};
2588 p
.SetMinKeyWidth(16);
2589 p
.PrintKeyBool("pipelineBinaries", static_cast<bool>(obj
.pipelineBinaries
));
2591 void DumpVkPhysicalDevicePipelineBinaryPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineBinaryPropertiesKHR
&obj
) {
2592 ObjectWrapper object
{p
, name
};
2593 p
.SetMinKeyWidth(38);
2594 p
.PrintKeyBool("pipelineBinaryInternalCache", static_cast<bool>(obj
.pipelineBinaryInternalCache
));
2595 p
.PrintKeyBool("pipelineBinaryInternalCacheControl", static_cast<bool>(obj
.pipelineBinaryInternalCacheControl
));
2596 p
.PrintKeyBool("pipelineBinaryPrefersInternalCache", static_cast<bool>(obj
.pipelineBinaryPrefersInternalCache
));
2597 p
.PrintKeyBool("pipelineBinaryPrecompiledInternalCache", static_cast<bool>(obj
.pipelineBinaryPrecompiledInternalCache
));
2598 p
.PrintKeyBool("pipelineBinaryCompressedData", static_cast<bool>(obj
.pipelineBinaryCompressedData
));
2600 void DumpVkPhysicalDevicePipelineCreationCacheControlFeatures(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineCreationCacheControlFeatures
&obj
) {
2601 ObjectWrapper object
{p
, name
};
2602 p
.SetMinKeyWidth(28);
2603 p
.PrintKeyBool("pipelineCreationCacheControl", static_cast<bool>(obj
.pipelineCreationCacheControl
));
2605 void DumpVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
&obj
) {
2606 ObjectWrapper object
{p
, name
};
2607 p
.SetMinKeyWidth(22);
2608 p
.PrintKeyBool("pipelineExecutableInfo", static_cast<bool>(obj
.pipelineExecutableInfo
));
2610 void DumpVkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
&obj
) {
2611 ObjectWrapper object
{p
, name
};
2612 p
.SetMinKeyWidth(27);
2613 p
.PrintKeyBool("pipelineLibraryGroupHandles", static_cast<bool>(obj
.pipelineLibraryGroupHandles
));
2615 void DumpVkPhysicalDevicePipelinePropertiesFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePipelinePropertiesFeaturesEXT
&obj
) {
2616 ObjectWrapper object
{p
, name
};
2617 p
.SetMinKeyWidth(28);
2618 p
.PrintKeyBool("pipelinePropertiesIdentifier", static_cast<bool>(obj
.pipelinePropertiesIdentifier
));
2620 void DumpVkPhysicalDevicePipelineProtectedAccessFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineProtectedAccessFeaturesEXT
&obj
) {
2621 ObjectWrapper object
{p
, name
};
2622 p
.SetMinKeyWidth(23);
2623 p
.PrintKeyBool("pipelineProtectedAccess", static_cast<bool>(obj
.pipelineProtectedAccess
));
2625 void DumpVkPhysicalDevicePipelineRobustnessFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineRobustnessFeaturesEXT
&obj
) {
2626 ObjectWrapper object
{p
, name
};
2627 p
.SetMinKeyWidth(18);
2628 p
.PrintKeyBool("pipelineRobustness", static_cast<bool>(obj
.pipelineRobustness
));
2630 void DumpVkPhysicalDevicePipelineRobustnessPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePipelineRobustnessPropertiesEXT
&obj
) {
2631 ObjectWrapper object
{p
, name
};
2632 DumpVkPipelineRobustnessBufferBehaviorEXT(p
, "defaultRobustnessStorageBuffers", obj
.defaultRobustnessStorageBuffers
);
2633 DumpVkPipelineRobustnessBufferBehaviorEXT(p
, "defaultRobustnessUniformBuffers", obj
.defaultRobustnessUniformBuffers
);
2634 DumpVkPipelineRobustnessBufferBehaviorEXT(p
, "defaultRobustnessVertexInputs", obj
.defaultRobustnessVertexInputs
);
2635 DumpVkPipelineRobustnessImageBehaviorEXT(p
, "defaultRobustnessImages", obj
.defaultRobustnessImages
);
2637 void DumpVkPhysicalDevicePointClippingProperties(Printer
&p
, std::string name
, const VkPhysicalDevicePointClippingProperties
&obj
) {
2638 ObjectWrapper object
{p
, name
};
2639 DumpVkPointClippingBehavior(p
, "pointClippingBehavior", obj
.pointClippingBehavior
);
2641 #ifdef VK_ENABLE_BETA_EXTENSIONS
2642 void DumpVkPhysicalDevicePortabilitySubsetFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePortabilitySubsetFeaturesKHR
&obj
) {
2643 ObjectWrapper object
{p
, name
};
2644 p
.SetMinKeyWidth(38);
2645 p
.PrintKeyBool("constantAlphaColorBlendFactors", static_cast<bool>(obj
.constantAlphaColorBlendFactors
));
2646 p
.PrintKeyBool("events", static_cast<bool>(obj
.events
));
2647 p
.PrintKeyBool("imageViewFormatReinterpretation", static_cast<bool>(obj
.imageViewFormatReinterpretation
));
2648 p
.PrintKeyBool("imageViewFormatSwizzle", static_cast<bool>(obj
.imageViewFormatSwizzle
));
2649 p
.PrintKeyBool("imageView2DOn3DImage", static_cast<bool>(obj
.imageView2DOn3DImage
));
2650 p
.PrintKeyBool("multisampleArrayImage", static_cast<bool>(obj
.multisampleArrayImage
));
2651 p
.PrintKeyBool("mutableComparisonSamplers", static_cast<bool>(obj
.mutableComparisonSamplers
));
2652 p
.PrintKeyBool("pointPolygons", static_cast<bool>(obj
.pointPolygons
));
2653 p
.PrintKeyBool("samplerMipLodBias", static_cast<bool>(obj
.samplerMipLodBias
));
2654 p
.PrintKeyBool("separateStencilMaskRef", static_cast<bool>(obj
.separateStencilMaskRef
));
2655 p
.PrintKeyBool("shaderSampleRateInterpolationFunctions", static_cast<bool>(obj
.shaderSampleRateInterpolationFunctions
));
2656 p
.PrintKeyBool("tessellationIsolines", static_cast<bool>(obj
.tessellationIsolines
));
2657 p
.PrintKeyBool("tessellationPointMode", static_cast<bool>(obj
.tessellationPointMode
));
2658 p
.PrintKeyBool("triangleFans", static_cast<bool>(obj
.triangleFans
));
2659 p
.PrintKeyBool("vertexAttributeAccessBeyondStride", static_cast<bool>(obj
.vertexAttributeAccessBeyondStride
));
2661 #endif // VK_ENABLE_BETA_EXTENSIONS
2662 #ifdef VK_ENABLE_BETA_EXTENSIONS
2663 void DumpVkPhysicalDevicePortabilitySubsetPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePortabilitySubsetPropertiesKHR
&obj
) {
2664 ObjectWrapper object
{p
, name
};
2665 p
.SetMinKeyWidth(36);
2666 p
.PrintKeyValue("minVertexInputBindingStrideAlignment", obj
.minVertexInputBindingStrideAlignment
);
2668 #endif // VK_ENABLE_BETA_EXTENSIONS
2669 void DumpVkPhysicalDevicePresentIdFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePresentIdFeaturesKHR
&obj
) {
2670 ObjectWrapper object
{p
, name
};
2671 p
.SetMinKeyWidth(9);
2672 p
.PrintKeyBool("presentId", static_cast<bool>(obj
.presentId
));
2674 void DumpVkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
&obj
) {
2675 ObjectWrapper object
{p
, name
};
2676 p
.SetMinKeyWidth(26);
2677 p
.PrintKeyBool("presentModeFifoLatestReady", static_cast<bool>(obj
.presentModeFifoLatestReady
));
2679 void DumpVkPhysicalDevicePresentWaitFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePresentWaitFeaturesKHR
&obj
) {
2680 ObjectWrapper object
{p
, name
};
2681 p
.SetMinKeyWidth(11);
2682 p
.PrintKeyBool("presentWait", static_cast<bool>(obj
.presentWait
));
2684 void DumpVkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
&obj
) {
2685 ObjectWrapper object
{p
, name
};
2686 p
.SetMinKeyWidth(33);
2687 p
.PrintKeyBool("primitiveTopologyListRestart", static_cast<bool>(obj
.primitiveTopologyListRestart
));
2688 p
.PrintKeyBool("primitiveTopologyPatchListRestart", static_cast<bool>(obj
.primitiveTopologyPatchListRestart
));
2690 void DumpVkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
&obj
) {
2691 ObjectWrapper object
{p
, name
};
2692 p
.SetMinKeyWidth(45);
2693 p
.PrintKeyBool("primitivesGeneratedQuery", static_cast<bool>(obj
.primitivesGeneratedQuery
));
2694 p
.PrintKeyBool("primitivesGeneratedQueryWithRasterizerDiscard", static_cast<bool>(obj
.primitivesGeneratedQueryWithRasterizerDiscard
));
2695 p
.PrintKeyBool("primitivesGeneratedQueryWithNonZeroStreams", static_cast<bool>(obj
.primitivesGeneratedQueryWithNonZeroStreams
));
2697 void DumpVkPhysicalDevicePrivateDataFeatures(Printer
&p
, std::string name
, const VkPhysicalDevicePrivateDataFeatures
&obj
) {
2698 ObjectWrapper object
{p
, name
};
2699 p
.SetMinKeyWidth(11);
2700 p
.PrintKeyBool("privateData", static_cast<bool>(obj
.privateData
));
2702 void DumpVkPhysicalDeviceProtectedMemoryFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceProtectedMemoryFeatures
&obj
) {
2703 ObjectWrapper object
{p
, name
};
2704 p
.SetMinKeyWidth(15);
2705 p
.PrintKeyBool("protectedMemory", static_cast<bool>(obj
.protectedMemory
));
2707 void DumpVkPhysicalDeviceProtectedMemoryProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceProtectedMemoryProperties
&obj
) {
2708 ObjectWrapper object
{p
, name
};
2709 p
.SetMinKeyWidth(16);
2710 p
.PrintKeyBool("protectedNoFault", static_cast<bool>(obj
.protectedNoFault
));
2712 void DumpVkPhysicalDeviceProvokingVertexFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceProvokingVertexFeaturesEXT
&obj
) {
2713 ObjectWrapper object
{p
, name
};
2714 p
.SetMinKeyWidth(41);
2715 p
.PrintKeyBool("provokingVertexLast", static_cast<bool>(obj
.provokingVertexLast
));
2716 p
.PrintKeyBool("transformFeedbackPreservesProvokingVertex", static_cast<bool>(obj
.transformFeedbackPreservesProvokingVertex
));
2718 void DumpVkPhysicalDeviceProvokingVertexPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceProvokingVertexPropertiesEXT
&obj
) {
2719 ObjectWrapper object
{p
, name
};
2720 p
.SetMinKeyWidth(52);
2721 p
.PrintKeyBool("provokingVertexModePerPipeline", static_cast<bool>(obj
.provokingVertexModePerPipeline
));
2722 p
.PrintKeyBool("transformFeedbackPreservesTriangleFanProvokingVertex", static_cast<bool>(obj
.transformFeedbackPreservesTriangleFanProvokingVertex
));
2724 void DumpVkPhysicalDevicePushDescriptorPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDevicePushDescriptorPropertiesKHR
&obj
) {
2725 ObjectWrapper object
{p
, name
};
2726 p
.SetMinKeyWidth(18);
2727 p
.PrintKeyValue("maxPushDescriptors", obj
.maxPushDescriptors
);
2729 void DumpVkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
&obj
) {
2730 ObjectWrapper object
{p
, name
};
2731 p
.SetMinKeyWidth(33);
2732 p
.PrintKeyBool("formatRgba10x6WithoutYCbCrSampler", static_cast<bool>(obj
.formatRgba10x6WithoutYCbCrSampler
));
2734 void DumpVkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
&obj
) {
2735 ObjectWrapper object
{p
, name
};
2736 p
.SetMinKeyWidth(41);
2737 p
.PrintKeyBool("rasterizationOrderColorAttachmentAccess", static_cast<bool>(obj
.rasterizationOrderColorAttachmentAccess
));
2738 p
.PrintKeyBool("rasterizationOrderDepthAttachmentAccess", static_cast<bool>(obj
.rasterizationOrderDepthAttachmentAccess
));
2739 p
.PrintKeyBool("rasterizationOrderStencilAttachmentAccess", static_cast<bool>(obj
.rasterizationOrderStencilAttachmentAccess
));
2741 void DumpVkPhysicalDeviceRayQueryFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayQueryFeaturesKHR
&obj
) {
2742 ObjectWrapper object
{p
, name
};
2743 p
.SetMinKeyWidth(8);
2744 p
.PrintKeyBool("rayQuery", static_cast<bool>(obj
.rayQuery
));
2746 void DumpVkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
&obj
) {
2747 ObjectWrapper object
{p
, name
};
2748 p
.SetMinKeyWidth(36);
2749 p
.PrintKeyBool("rayTracingMaintenance1", static_cast<bool>(obj
.rayTracingMaintenance1
));
2750 p
.PrintKeyBool("rayTracingPipelineTraceRaysIndirect2", static_cast<bool>(obj
.rayTracingPipelineTraceRaysIndirect2
));
2752 void DumpVkPhysicalDeviceRayTracingPipelineFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayTracingPipelineFeaturesKHR
&obj
) {
2753 ObjectWrapper object
{p
, name
};
2754 p
.SetMinKeyWidth(53);
2755 p
.PrintKeyBool("rayTracingPipeline", static_cast<bool>(obj
.rayTracingPipeline
));
2756 p
.PrintKeyBool("rayTracingPipelineShaderGroupHandleCaptureReplay", static_cast<bool>(obj
.rayTracingPipelineShaderGroupHandleCaptureReplay
));
2757 p
.PrintKeyBool("rayTracingPipelineShaderGroupHandleCaptureReplayMixed", static_cast<bool>(obj
.rayTracingPipelineShaderGroupHandleCaptureReplayMixed
));
2758 p
.PrintKeyBool("rayTracingPipelineTraceRaysIndirect", static_cast<bool>(obj
.rayTracingPipelineTraceRaysIndirect
));
2759 p
.PrintKeyBool("rayTraversalPrimitiveCulling", static_cast<bool>(obj
.rayTraversalPrimitiveCulling
));
2761 void DumpVkPhysicalDeviceRayTracingPipelinePropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayTracingPipelinePropertiesKHR
&obj
) {
2762 ObjectWrapper object
{p
, name
};
2763 p
.SetMinKeyWidth(34);
2764 p
.PrintKeyValue("shaderGroupHandleSize", obj
.shaderGroupHandleSize
);
2765 p
.PrintKeyValue("maxRayRecursionDepth", obj
.maxRayRecursionDepth
);
2766 p
.PrintKeyValue("maxShaderGroupStride", obj
.maxShaderGroupStride
);
2767 p
.PrintKeyValue("shaderGroupBaseAlignment", obj
.shaderGroupBaseAlignment
);
2768 p
.PrintKeyValue("shaderGroupHandleCaptureReplaySize", obj
.shaderGroupHandleCaptureReplaySize
);
2769 p
.PrintKeyValue("maxRayDispatchInvocationCount", obj
.maxRayDispatchInvocationCount
);
2770 p
.PrintKeyValue("shaderGroupHandleAlignment", obj
.shaderGroupHandleAlignment
);
2771 p
.PrintKeyValue("maxRayHitAttributeSize", obj
.maxRayHitAttributeSize
);
2773 void DumpVkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR
&obj
) {
2774 ObjectWrapper object
{p
, name
};
2775 p
.SetMinKeyWidth(23);
2776 p
.PrintKeyBool("rayTracingPositionFetch", static_cast<bool>(obj
.rayTracingPositionFetch
));
2778 void DumpVkPhysicalDeviceRobustness2FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceRobustness2FeaturesEXT
&obj
) {
2779 ObjectWrapper object
{p
, name
};
2780 p
.SetMinKeyWidth(19);
2781 p
.PrintKeyBool("robustBufferAccess2", static_cast<bool>(obj
.robustBufferAccess2
));
2782 p
.PrintKeyBool("robustImageAccess2", static_cast<bool>(obj
.robustImageAccess2
));
2783 p
.PrintKeyBool("nullDescriptor", static_cast<bool>(obj
.nullDescriptor
));
2785 void DumpVkPhysicalDeviceRobustness2PropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceRobustness2PropertiesEXT
&obj
) {
2786 ObjectWrapper object
{p
, name
};
2787 p
.SetMinKeyWidth(38);
2788 p
.PrintKeyValue("robustStorageBufferAccessSizeAlignment", to_hex_str(p
, obj
.robustStorageBufferAccessSizeAlignment
));
2789 p
.PrintKeyValue("robustUniformBufferAccessSizeAlignment", to_hex_str(p
, obj
.robustUniformBufferAccessSizeAlignment
));
2791 void DumpVkPhysicalDeviceSampleLocationsPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceSampleLocationsPropertiesEXT
&obj
) {
2792 ObjectWrapper object
{p
, name
};
2793 p
.SetMinKeyWidth(32);
2794 DumpVkSampleCountFlags(p
, "sampleLocationSampleCounts", obj
.sampleLocationSampleCounts
);
2795 DumpVkExtent2D(p
, "maxSampleLocationGridSize", obj
.maxSampleLocationGridSize
);
2797 ArrayWrapper
arr(p
,"sampleLocationCoordinateRange", 2);
2798 for (uint32_t i
= 0; i
< 2; i
++) { p
.PrintElement(obj
.sampleLocationCoordinateRange
[i
]); }
2800 p
.PrintKeyValue("sampleLocationSubPixelBits", obj
.sampleLocationSubPixelBits
);
2801 p
.PrintKeyBool("variableSampleLocations", static_cast<bool>(obj
.variableSampleLocations
));
2803 void DumpVkPhysicalDeviceSamplerFilterMinmaxProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceSamplerFilterMinmaxProperties
&obj
) {
2804 ObjectWrapper object
{p
, name
};
2805 p
.SetMinKeyWidth(34);
2806 p
.PrintKeyBool("filterMinmaxSingleComponentFormats", static_cast<bool>(obj
.filterMinmaxSingleComponentFormats
));
2807 p
.PrintKeyBool("filterMinmaxImageComponentMapping", static_cast<bool>(obj
.filterMinmaxImageComponentMapping
));
2809 void DumpVkPhysicalDeviceSamplerYcbcrConversionFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceSamplerYcbcrConversionFeatures
&obj
) {
2810 ObjectWrapper object
{p
, name
};
2811 p
.SetMinKeyWidth(22);
2812 p
.PrintKeyBool("samplerYcbcrConversion", static_cast<bool>(obj
.samplerYcbcrConversion
));
2814 void DumpVkPhysicalDeviceScalarBlockLayoutFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceScalarBlockLayoutFeatures
&obj
) {
2815 ObjectWrapper object
{p
, name
};
2816 p
.SetMinKeyWidth(17);
2817 p
.PrintKeyBool("scalarBlockLayout", static_cast<bool>(obj
.scalarBlockLayout
));
2819 void DumpVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
&obj
) {
2820 ObjectWrapper object
{p
, name
};
2821 p
.SetMinKeyWidth(27);
2822 p
.PrintKeyBool("separateDepthStencilLayouts", static_cast<bool>(obj
.separateDepthStencilLayouts
));
2824 void DumpVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
&obj
) {
2825 ObjectWrapper object
{p
, name
};
2826 p
.SetMinKeyWidth(31);
2827 p
.PrintKeyBool("shaderBufferFloat16Atomics", static_cast<bool>(obj
.shaderBufferFloat16Atomics
));
2828 p
.PrintKeyBool("shaderBufferFloat16AtomicAdd", static_cast<bool>(obj
.shaderBufferFloat16AtomicAdd
));
2829 p
.PrintKeyBool("shaderBufferFloat16AtomicMinMax", static_cast<bool>(obj
.shaderBufferFloat16AtomicMinMax
));
2830 p
.PrintKeyBool("shaderBufferFloat32AtomicMinMax", static_cast<bool>(obj
.shaderBufferFloat32AtomicMinMax
));
2831 p
.PrintKeyBool("shaderBufferFloat64AtomicMinMax", static_cast<bool>(obj
.shaderBufferFloat64AtomicMinMax
));
2832 p
.PrintKeyBool("shaderSharedFloat16Atomics", static_cast<bool>(obj
.shaderSharedFloat16Atomics
));
2833 p
.PrintKeyBool("shaderSharedFloat16AtomicAdd", static_cast<bool>(obj
.shaderSharedFloat16AtomicAdd
));
2834 p
.PrintKeyBool("shaderSharedFloat16AtomicMinMax", static_cast<bool>(obj
.shaderSharedFloat16AtomicMinMax
));
2835 p
.PrintKeyBool("shaderSharedFloat32AtomicMinMax", static_cast<bool>(obj
.shaderSharedFloat32AtomicMinMax
));
2836 p
.PrintKeyBool("shaderSharedFloat64AtomicMinMax", static_cast<bool>(obj
.shaderSharedFloat64AtomicMinMax
));
2837 p
.PrintKeyBool("shaderImageFloat32AtomicMinMax", static_cast<bool>(obj
.shaderImageFloat32AtomicMinMax
));
2838 p
.PrintKeyBool("sparseImageFloat32AtomicMinMax", static_cast<bool>(obj
.sparseImageFloat32AtomicMinMax
));
2840 void DumpVkPhysicalDeviceShaderAtomicFloatFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
&obj
) {
2841 ObjectWrapper object
{p
, name
};
2842 p
.SetMinKeyWidth(28);
2843 p
.PrintKeyBool("shaderBufferFloat32Atomics", static_cast<bool>(obj
.shaderBufferFloat32Atomics
));
2844 p
.PrintKeyBool("shaderBufferFloat32AtomicAdd", static_cast<bool>(obj
.shaderBufferFloat32AtomicAdd
));
2845 p
.PrintKeyBool("shaderBufferFloat64Atomics", static_cast<bool>(obj
.shaderBufferFloat64Atomics
));
2846 p
.PrintKeyBool("shaderBufferFloat64AtomicAdd", static_cast<bool>(obj
.shaderBufferFloat64AtomicAdd
));
2847 p
.PrintKeyBool("shaderSharedFloat32Atomics", static_cast<bool>(obj
.shaderSharedFloat32Atomics
));
2848 p
.PrintKeyBool("shaderSharedFloat32AtomicAdd", static_cast<bool>(obj
.shaderSharedFloat32AtomicAdd
));
2849 p
.PrintKeyBool("shaderSharedFloat64Atomics", static_cast<bool>(obj
.shaderSharedFloat64Atomics
));
2850 p
.PrintKeyBool("shaderSharedFloat64AtomicAdd", static_cast<bool>(obj
.shaderSharedFloat64AtomicAdd
));
2851 p
.PrintKeyBool("shaderImageFloat32Atomics", static_cast<bool>(obj
.shaderImageFloat32Atomics
));
2852 p
.PrintKeyBool("shaderImageFloat32AtomicAdd", static_cast<bool>(obj
.shaderImageFloat32AtomicAdd
));
2853 p
.PrintKeyBool("sparseImageFloat32Atomics", static_cast<bool>(obj
.sparseImageFloat32Atomics
));
2854 p
.PrintKeyBool("sparseImageFloat32AtomicAdd", static_cast<bool>(obj
.sparseImageFloat32AtomicAdd
));
2856 void DumpVkPhysicalDeviceShaderAtomicInt64Features(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderAtomicInt64Features
&obj
) {
2857 ObjectWrapper object
{p
, name
};
2858 p
.SetMinKeyWidth(24);
2859 p
.PrintKeyBool("shaderBufferInt64Atomics", static_cast<bool>(obj
.shaderBufferInt64Atomics
));
2860 p
.PrintKeyBool("shaderSharedInt64Atomics", static_cast<bool>(obj
.shaderSharedInt64Atomics
));
2862 void DumpVkPhysicalDeviceShaderClockFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderClockFeaturesKHR
&obj
) {
2863 ObjectWrapper object
{p
, name
};
2864 p
.SetMinKeyWidth(19);
2865 p
.PrintKeyBool("shaderSubgroupClock", static_cast<bool>(obj
.shaderSubgroupClock
));
2866 p
.PrintKeyBool("shaderDeviceClock", static_cast<bool>(obj
.shaderDeviceClock
));
2868 void DumpVkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
&obj
) {
2869 ObjectWrapper object
{p
, name
};
2870 p
.SetMinKeyWidth(30);
2871 p
.PrintKeyBool("shaderDemoteToHelperInvocation", static_cast<bool>(obj
.shaderDemoteToHelperInvocation
));
2873 void DumpVkPhysicalDeviceShaderDrawParametersFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderDrawParametersFeatures
&obj
) {
2874 ObjectWrapper object
{p
, name
};
2875 p
.SetMinKeyWidth(20);
2876 p
.PrintKeyBool("shaderDrawParameters", static_cast<bool>(obj
.shaderDrawParameters
));
2878 void DumpVkPhysicalDeviceShaderExpectAssumeFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderExpectAssumeFeaturesKHR
&obj
) {
2879 ObjectWrapper object
{p
, name
};
2880 p
.SetMinKeyWidth(18);
2881 p
.PrintKeyBool("shaderExpectAssume", static_cast<bool>(obj
.shaderExpectAssume
));
2883 void DumpVkPhysicalDeviceShaderFloat16Int8Features(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderFloat16Int8Features
&obj
) {
2884 ObjectWrapper object
{p
, name
};
2885 p
.SetMinKeyWidth(13);
2886 p
.PrintKeyBool("shaderFloat16", static_cast<bool>(obj
.shaderFloat16
));
2887 p
.PrintKeyBool("shaderInt8", static_cast<bool>(obj
.shaderInt8
));
2889 void DumpVkPhysicalDeviceShaderFloatControls2FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderFloatControls2FeaturesKHR
&obj
) {
2890 ObjectWrapper object
{p
, name
};
2891 p
.SetMinKeyWidth(20);
2892 p
.PrintKeyBool("shaderFloatControls2", static_cast<bool>(obj
.shaderFloatControls2
));
2894 void DumpVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
&obj
) {
2895 ObjectWrapper object
{p
, name
};
2896 p
.SetMinKeyWidth(23);
2897 p
.PrintKeyBool("shaderImageInt64Atomics", static_cast<bool>(obj
.shaderImageInt64Atomics
));
2898 p
.PrintKeyBool("sparseImageInt64Atomics", static_cast<bool>(obj
.sparseImageInt64Atomics
));
2900 void DumpVkPhysicalDeviceShaderIntegerDotProductFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderIntegerDotProductFeatures
&obj
) {
2901 ObjectWrapper object
{p
, name
};
2902 p
.SetMinKeyWidth(23);
2903 p
.PrintKeyBool("shaderIntegerDotProduct", static_cast<bool>(obj
.shaderIntegerDotProduct
));
2905 void DumpVkPhysicalDeviceShaderIntegerDotProductProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderIntegerDotProductProperties
&obj
) {
2906 ObjectWrapper object
{p
, name
};
2907 p
.SetMinKeyWidth(77);
2908 p
.PrintKeyBool("integerDotProduct8BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct8BitUnsignedAccelerated
));
2909 p
.PrintKeyBool("integerDotProduct8BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct8BitSignedAccelerated
));
2910 p
.PrintKeyBool("integerDotProduct8BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct8BitMixedSignednessAccelerated
));
2911 p
.PrintKeyBool("integerDotProduct4x8BitPackedUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedUnsignedAccelerated
));
2912 p
.PrintKeyBool("integerDotProduct4x8BitPackedSignedAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedSignedAccelerated
));
2913 p
.PrintKeyBool("integerDotProduct4x8BitPackedMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedMixedSignednessAccelerated
));
2914 p
.PrintKeyBool("integerDotProduct16BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct16BitUnsignedAccelerated
));
2915 p
.PrintKeyBool("integerDotProduct16BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct16BitSignedAccelerated
));
2916 p
.PrintKeyBool("integerDotProduct16BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct16BitMixedSignednessAccelerated
));
2917 p
.PrintKeyBool("integerDotProduct32BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct32BitUnsignedAccelerated
));
2918 p
.PrintKeyBool("integerDotProduct32BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct32BitSignedAccelerated
));
2919 p
.PrintKeyBool("integerDotProduct32BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct32BitMixedSignednessAccelerated
));
2920 p
.PrintKeyBool("integerDotProduct64BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct64BitUnsignedAccelerated
));
2921 p
.PrintKeyBool("integerDotProduct64BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct64BitSignedAccelerated
));
2922 p
.PrintKeyBool("integerDotProduct64BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct64BitMixedSignednessAccelerated
));
2923 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated
));
2924 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitSignedAccelerated
));
2925 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated
));
2926 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated
));
2927 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated
));
2928 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated
));
2929 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated
));
2930 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitSignedAccelerated
));
2931 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated
));
2932 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated
));
2933 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitSignedAccelerated
));
2934 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated
));
2935 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated
));
2936 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitSignedAccelerated
));
2937 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated
));
2939 void DumpVkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
&obj
) {
2940 ObjectWrapper object
{p
, name
};
2941 p
.SetMinKeyWidth(26);
2942 p
.PrintKeyBool("shaderMaximalReconvergence", static_cast<bool>(obj
.shaderMaximalReconvergence
));
2944 void DumpVkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
&obj
) {
2945 ObjectWrapper object
{p
, name
};
2946 p
.SetMinKeyWidth(22);
2947 p
.PrintKeyBool("shaderModuleIdentifier", static_cast<bool>(obj
.shaderModuleIdentifier
));
2949 void DumpVkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
&obj
) {
2950 ObjectWrapper object
{p
, name
};
2951 p
.SetMinKeyWidth(39);
2952 p
.PrintKeyValue("shaderModuleIdentifierAlgorithmUUID", obj
.shaderModuleIdentifierAlgorithmUUID
);
2954 void DumpVkPhysicalDeviceShaderObjectFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderObjectFeaturesEXT
&obj
) {
2955 ObjectWrapper object
{p
, name
};
2956 p
.SetMinKeyWidth(12);
2957 p
.PrintKeyBool("shaderObject", static_cast<bool>(obj
.shaderObject
));
2959 void DumpVkPhysicalDeviceShaderObjectPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderObjectPropertiesEXT
&obj
) {
2960 ObjectWrapper object
{p
, name
};
2961 p
.SetMinKeyWidth(20);
2962 p
.PrintKeyValue("shaderBinaryUUID", obj
.shaderBinaryUUID
);
2963 p
.PrintKeyValue("shaderBinaryVersion", obj
.shaderBinaryVersion
);
2965 void DumpVkPhysicalDeviceShaderQuadControlFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderQuadControlFeaturesKHR
&obj
) {
2966 ObjectWrapper object
{p
, name
};
2967 p
.SetMinKeyWidth(17);
2968 p
.PrintKeyBool("shaderQuadControl", static_cast<bool>(obj
.shaderQuadControl
));
2970 void DumpVkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
&obj
) {
2971 ObjectWrapper object
{p
, name
};
2972 p
.SetMinKeyWidth(32);
2973 p
.PrintKeyBool("shaderRelaxedExtendedInstruction", static_cast<bool>(obj
.shaderRelaxedExtendedInstruction
));
2975 void DumpVkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT
&obj
) {
2976 ObjectWrapper object
{p
, name
};
2977 p
.SetMinKeyWidth(26);
2978 p
.PrintKeyBool("shaderReplicatedComposites", static_cast<bool>(obj
.shaderReplicatedComposites
));
2980 void DumpVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
&obj
) {
2981 ObjectWrapper object
{p
, name
};
2982 p
.SetMinKeyWidth(27);
2983 p
.PrintKeyBool("shaderSubgroupExtendedTypes", static_cast<bool>(obj
.shaderSubgroupExtendedTypes
));
2985 void DumpVkPhysicalDeviceShaderSubgroupRotateFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR
&obj
) {
2986 ObjectWrapper object
{p
, name
};
2987 p
.SetMinKeyWidth(29);
2988 p
.PrintKeyBool("shaderSubgroupRotate", static_cast<bool>(obj
.shaderSubgroupRotate
));
2989 p
.PrintKeyBool("shaderSubgroupRotateClustered", static_cast<bool>(obj
.shaderSubgroupRotateClustered
));
2991 void DumpVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
&obj
) {
2992 ObjectWrapper object
{p
, name
};
2993 p
.SetMinKeyWidth(32);
2994 p
.PrintKeyBool("shaderSubgroupUniformControlFlow", static_cast<bool>(obj
.shaderSubgroupUniformControlFlow
));
2996 void DumpVkPhysicalDeviceShaderTerminateInvocationFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderTerminateInvocationFeatures
&obj
) {
2997 ObjectWrapper object
{p
, name
};
2998 p
.SetMinKeyWidth(25);
2999 p
.PrintKeyBool("shaderTerminateInvocation", static_cast<bool>(obj
.shaderTerminateInvocation
));
3001 void DumpVkPhysicalDeviceShaderTileImageFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderTileImageFeaturesEXT
&obj
) {
3002 ObjectWrapper object
{p
, name
};
3003 p
.SetMinKeyWidth(32);
3004 p
.PrintKeyBool("shaderTileImageColorReadAccess", static_cast<bool>(obj
.shaderTileImageColorReadAccess
));
3005 p
.PrintKeyBool("shaderTileImageDepthReadAccess", static_cast<bool>(obj
.shaderTileImageDepthReadAccess
));
3006 p
.PrintKeyBool("shaderTileImageStencilReadAccess", static_cast<bool>(obj
.shaderTileImageStencilReadAccess
));
3008 void DumpVkPhysicalDeviceShaderTileImagePropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceShaderTileImagePropertiesEXT
&obj
) {
3009 ObjectWrapper object
{p
, name
};
3010 p
.SetMinKeyWidth(48);
3011 p
.PrintKeyBool("shaderTileImageCoherentReadAccelerated", static_cast<bool>(obj
.shaderTileImageCoherentReadAccelerated
));
3012 p
.PrintKeyBool("shaderTileImageReadSampleFromPixelRateInvocation", static_cast<bool>(obj
.shaderTileImageReadSampleFromPixelRateInvocation
));
3013 p
.PrintKeyBool("shaderTileImageReadFromHelperInvocation", static_cast<bool>(obj
.shaderTileImageReadFromHelperInvocation
));
3015 void DumpVkPhysicalDeviceSparseProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceSparseProperties
&obj
) {
3016 if (p
.Type() == OutputType::json
)
3017 p
.ObjectStart("sparseProperties");
3019 p
.SetSubHeader().ObjectStart(name
);
3020 p
.SetMinKeyWidth(40);
3021 p
.PrintKeyBool("residencyStandard2DBlockShape", static_cast<bool>(obj
.residencyStandard2DBlockShape
));
3022 p
.PrintKeyBool("residencyStandard2DMultisampleBlockShape", static_cast<bool>(obj
.residencyStandard2DMultisampleBlockShape
));
3023 p
.PrintKeyBool("residencyStandard3DBlockShape", static_cast<bool>(obj
.residencyStandard3DBlockShape
));
3024 p
.PrintKeyBool("residencyAlignedMipSize", static_cast<bool>(obj
.residencyAlignedMipSize
));
3025 p
.PrintKeyBool("residencyNonResidentStrict", static_cast<bool>(obj
.residencyNonResidentStrict
));
3028 void DumpVkPhysicalDeviceSubgroupProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceSubgroupProperties
&obj
) {
3029 ObjectWrapper object
{p
, name
};
3030 p
.SetMinKeyWidth(25);
3031 p
.PrintKeyValue("subgroupSize", obj
.subgroupSize
);
3032 DumpVkShaderStageFlags(p
, "supportedStages", obj
.supportedStages
);
3033 DumpVkSubgroupFeatureFlags(p
, "supportedOperations", obj
.supportedOperations
);
3034 p
.PrintKeyBool("quadOperationsInAllStages", static_cast<bool>(obj
.quadOperationsInAllStages
));
3036 void DumpVkPhysicalDeviceSubgroupSizeControlFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceSubgroupSizeControlFeatures
&obj
) {
3037 ObjectWrapper object
{p
, name
};
3038 p
.SetMinKeyWidth(20);
3039 p
.PrintKeyBool("subgroupSizeControl", static_cast<bool>(obj
.subgroupSizeControl
));
3040 p
.PrintKeyBool("computeFullSubgroups", static_cast<bool>(obj
.computeFullSubgroups
));
3042 void DumpVkPhysicalDeviceSubgroupSizeControlProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceSubgroupSizeControlProperties
&obj
) {
3043 ObjectWrapper object
{p
, name
};
3044 p
.SetMinKeyWidth(28);
3045 p
.PrintKeyValue("minSubgroupSize", obj
.minSubgroupSize
);
3046 p
.PrintKeyValue("maxSubgroupSize", obj
.maxSubgroupSize
);
3047 p
.PrintKeyValue("maxComputeWorkgroupSubgroups", obj
.maxComputeWorkgroupSubgroups
);
3048 DumpVkShaderStageFlags(p
, "requiredSubgroupSizeStages", obj
.requiredSubgroupSizeStages
);
3050 void DumpVkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
&obj
) {
3051 ObjectWrapper object
{p
, name
};
3052 p
.SetMinKeyWidth(20);
3053 p
.PrintKeyBool("subpassMergeFeedback", static_cast<bool>(obj
.subpassMergeFeedback
));
3055 void DumpVkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT
&obj
) {
3056 ObjectWrapper object
{p
, name
};
3057 p
.SetMinKeyWidth(21);
3058 p
.PrintKeyBool("swapchainMaintenance1", static_cast<bool>(obj
.swapchainMaintenance1
));
3060 void DumpVkPhysicalDeviceSynchronization2Features(Printer
&p
, std::string name
, const VkPhysicalDeviceSynchronization2Features
&obj
) {
3061 ObjectWrapper object
{p
, name
};
3062 p
.SetMinKeyWidth(16);
3063 p
.PrintKeyBool("synchronization2", static_cast<bool>(obj
.synchronization2
));
3065 void DumpVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
&obj
) {
3066 ObjectWrapper object
{p
, name
};
3067 p
.SetMinKeyWidth(20);
3068 p
.PrintKeyBool("texelBufferAlignment", static_cast<bool>(obj
.texelBufferAlignment
));
3070 void DumpVkPhysicalDeviceTexelBufferAlignmentProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceTexelBufferAlignmentProperties
&obj
) {
3071 ObjectWrapper object
{p
, name
};
3072 p
.SetMinKeyWidth(44);
3073 p
.PrintKeyValue("storageTexelBufferOffsetAlignmentBytes", to_hex_str(p
, obj
.storageTexelBufferOffsetAlignmentBytes
));
3074 p
.PrintKeyBool("storageTexelBufferOffsetSingleTexelAlignment", static_cast<bool>(obj
.storageTexelBufferOffsetSingleTexelAlignment
));
3075 p
.PrintKeyValue("uniformTexelBufferOffsetAlignmentBytes", to_hex_str(p
, obj
.uniformTexelBufferOffsetAlignmentBytes
));
3076 p
.PrintKeyBool("uniformTexelBufferOffsetSingleTexelAlignment", static_cast<bool>(obj
.uniformTexelBufferOffsetSingleTexelAlignment
));
3078 void DumpVkPhysicalDeviceTextureCompressionASTCHDRFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceTextureCompressionASTCHDRFeatures
&obj
) {
3079 ObjectWrapper object
{p
, name
};
3080 p
.SetMinKeyWidth(26);
3081 p
.PrintKeyBool("textureCompressionASTC_HDR", static_cast<bool>(obj
.textureCompressionASTC_HDR
));
3083 void DumpVkPhysicalDeviceTimelineSemaphoreFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceTimelineSemaphoreFeatures
&obj
) {
3084 ObjectWrapper object
{p
, name
};
3085 p
.SetMinKeyWidth(17);
3086 p
.PrintKeyBool("timelineSemaphore", static_cast<bool>(obj
.timelineSemaphore
));
3088 void DumpVkPhysicalDeviceTimelineSemaphoreProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceTimelineSemaphoreProperties
&obj
) {
3089 ObjectWrapper object
{p
, name
};
3090 p
.SetMinKeyWidth(35);
3091 p
.PrintKeyValue("maxTimelineSemaphoreValueDifference", obj
.maxTimelineSemaphoreValueDifference
);
3093 void DumpVkPhysicalDeviceToolProperties(Printer
&p
, std::string name
, const VkPhysicalDeviceToolProperties
&obj
) {
3094 ObjectWrapper object
{p
, name
};
3095 p
.SetMinKeyWidth(16);
3096 p
.PrintKeyString("name", obj
.name
);
3097 p
.PrintKeyString("version", obj
.version
);
3098 DumpVkToolPurposeFlags(p
, "purposes", obj
.purposes
);
3099 p
.PrintKeyString("description", obj
.description
);
3100 p
.PrintKeyString("layer", obj
.layer
);
3102 void DumpVkPhysicalDeviceTransformFeedbackFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceTransformFeedbackFeaturesEXT
&obj
) {
3103 ObjectWrapper object
{p
, name
};
3104 p
.SetMinKeyWidth(17);
3105 p
.PrintKeyBool("transformFeedback", static_cast<bool>(obj
.transformFeedback
));
3106 p
.PrintKeyBool("geometryStreams", static_cast<bool>(obj
.geometryStreams
));
3108 void DumpVkPhysicalDeviceTransformFeedbackPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceTransformFeedbackPropertiesEXT
&obj
) {
3109 ObjectWrapper object
{p
, name
};
3110 p
.SetMinKeyWidth(42);
3111 p
.PrintKeyValue("maxTransformFeedbackStreams", obj
.maxTransformFeedbackStreams
);
3112 p
.PrintKeyValue("maxTransformFeedbackBuffers", obj
.maxTransformFeedbackBuffers
);
3113 p
.PrintKeyValue("maxTransformFeedbackBufferSize", to_hex_str(p
, obj
.maxTransformFeedbackBufferSize
));
3114 p
.PrintKeyValue("maxTransformFeedbackStreamDataSize", obj
.maxTransformFeedbackStreamDataSize
);
3115 p
.PrintKeyValue("maxTransformFeedbackBufferDataSize", obj
.maxTransformFeedbackBufferDataSize
);
3116 p
.PrintKeyValue("maxTransformFeedbackBufferDataStride", obj
.maxTransformFeedbackBufferDataStride
);
3117 p
.PrintKeyBool("transformFeedbackQueries", static_cast<bool>(obj
.transformFeedbackQueries
));
3118 p
.PrintKeyBool("transformFeedbackStreamsLinesTriangles", static_cast<bool>(obj
.transformFeedbackStreamsLinesTriangles
));
3119 p
.PrintKeyBool("transformFeedbackRasterizationStreamSelect", static_cast<bool>(obj
.transformFeedbackRasterizationStreamSelect
));
3120 p
.PrintKeyBool("transformFeedbackDraw", static_cast<bool>(obj
.transformFeedbackDraw
));
3122 void DumpVkPhysicalDeviceUniformBufferStandardLayoutFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceUniformBufferStandardLayoutFeatures
&obj
) {
3123 ObjectWrapper object
{p
, name
};
3124 p
.SetMinKeyWidth(27);
3125 p
.PrintKeyBool("uniformBufferStandardLayout", static_cast<bool>(obj
.uniformBufferStandardLayout
));
3127 void DumpVkPhysicalDeviceVariablePointersFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceVariablePointersFeatures
&obj
) {
3128 ObjectWrapper object
{p
, name
};
3129 p
.SetMinKeyWidth(29);
3130 p
.PrintKeyBool("variablePointersStorageBuffer", static_cast<bool>(obj
.variablePointersStorageBuffer
));
3131 p
.PrintKeyBool("variablePointers", static_cast<bool>(obj
.variablePointers
));
3133 void DumpVkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR
&obj
) {
3134 ObjectWrapper object
{p
, name
};
3135 p
.SetMinKeyWidth(38);
3136 p
.PrintKeyBool("vertexAttributeInstanceRateDivisor", static_cast<bool>(obj
.vertexAttributeInstanceRateDivisor
));
3137 p
.PrintKeyBool("vertexAttributeInstanceRateZeroDivisor", static_cast<bool>(obj
.vertexAttributeInstanceRateZeroDivisor
));
3139 void DumpVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
&obj
) {
3140 ObjectWrapper object
{p
, name
};
3141 p
.SetMinKeyWidth(22);
3142 p
.PrintKeyValue("maxVertexAttribDivisor", obj
.maxVertexAttribDivisor
);
3144 void DumpVkPhysicalDeviceVertexAttributeDivisorPropertiesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR
&obj
) {
3145 ObjectWrapper object
{p
, name
};
3146 p
.SetMinKeyWidth(28);
3147 p
.PrintKeyValue("maxVertexAttribDivisor", obj
.maxVertexAttribDivisor
);
3148 p
.PrintKeyBool("supportsNonZeroFirstInstance", static_cast<bool>(obj
.supportsNonZeroFirstInstance
));
3150 void DumpVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
&obj
) {
3151 ObjectWrapper object
{p
, name
};
3152 p
.SetMinKeyWidth(23);
3153 p
.PrintKeyBool("vertexInputDynamicState", static_cast<bool>(obj
.vertexInputDynamicState
));
3155 void DumpVkPhysicalDeviceVideoMaintenance1FeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceVideoMaintenance1FeaturesKHR
&obj
) {
3156 ObjectWrapper object
{p
, name
};
3157 p
.SetMinKeyWidth(17);
3158 p
.PrintKeyBool("videoMaintenance1", static_cast<bool>(obj
.videoMaintenance1
));
3160 void DumpVkPhysicalDeviceVulkan11Features(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan11Features
&obj
) {
3161 ObjectWrapper object
{p
, name
};
3162 p
.SetMinKeyWidth(34);
3163 p
.PrintKeyBool("storageBuffer16BitAccess", static_cast<bool>(obj
.storageBuffer16BitAccess
));
3164 p
.PrintKeyBool("uniformAndStorageBuffer16BitAccess", static_cast<bool>(obj
.uniformAndStorageBuffer16BitAccess
));
3165 p
.PrintKeyBool("storagePushConstant16", static_cast<bool>(obj
.storagePushConstant16
));
3166 p
.PrintKeyBool("storageInputOutput16", static_cast<bool>(obj
.storageInputOutput16
));
3167 p
.PrintKeyBool("multiview", static_cast<bool>(obj
.multiview
));
3168 p
.PrintKeyBool("multiviewGeometryShader", static_cast<bool>(obj
.multiviewGeometryShader
));
3169 p
.PrintKeyBool("multiviewTessellationShader", static_cast<bool>(obj
.multiviewTessellationShader
));
3170 p
.PrintKeyBool("variablePointersStorageBuffer", static_cast<bool>(obj
.variablePointersStorageBuffer
));
3171 p
.PrintKeyBool("variablePointers", static_cast<bool>(obj
.variablePointers
));
3172 p
.PrintKeyBool("protectedMemory", static_cast<bool>(obj
.protectedMemory
));
3173 p
.PrintKeyBool("samplerYcbcrConversion", static_cast<bool>(obj
.samplerYcbcrConversion
));
3174 p
.PrintKeyBool("shaderDrawParameters", static_cast<bool>(obj
.shaderDrawParameters
));
3176 void DumpVkPhysicalDeviceVulkan11Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan11Properties
&obj
) {
3177 ObjectWrapper object
{p
, name
};
3178 p
.SetMinKeyWidth(33);
3179 p
.PrintKeyValue("deviceUUID", obj
.deviceUUID
);
3180 p
.PrintKeyValue("driverUUID", obj
.driverUUID
);
3181 if (obj
.deviceLUIDValid
) { // special case
3182 p
.PrintKeyValue("deviceLUID", obj
.deviceLUID
);
3184 p
.PrintKeyValue("deviceNodeMask", obj
.deviceNodeMask
);
3185 p
.PrintKeyBool("deviceLUIDValid", static_cast<bool>(obj
.deviceLUIDValid
));
3186 p
.PrintKeyValue("subgroupSize", obj
.subgroupSize
);
3187 DumpVkShaderStageFlags(p
, "subgroupSupportedStages", obj
.subgroupSupportedStages
);
3188 DumpVkSubgroupFeatureFlags(p
, "subgroupSupportedOperations", obj
.subgroupSupportedOperations
);
3189 p
.PrintKeyBool("subgroupQuadOperationsInAllStages", static_cast<bool>(obj
.subgroupQuadOperationsInAllStages
));
3190 DumpVkPointClippingBehavior(p
, "pointClippingBehavior", obj
.pointClippingBehavior
);
3191 p
.PrintKeyValue("maxMultiviewViewCount", obj
.maxMultiviewViewCount
);
3192 p
.PrintKeyValue("maxMultiviewInstanceIndex", obj
.maxMultiviewInstanceIndex
);
3193 p
.PrintKeyBool("protectedNoFault", static_cast<bool>(obj
.protectedNoFault
));
3194 p
.PrintKeyValue("maxPerSetDescriptors", obj
.maxPerSetDescriptors
);
3195 p
.PrintKeyValue("maxMemoryAllocationSize", to_hex_str(p
, obj
.maxMemoryAllocationSize
));
3197 void DumpVkPhysicalDeviceVulkan12Features(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan12Features
&obj
) {
3198 ObjectWrapper object
{p
, name
};
3199 p
.SetMinKeyWidth(50);
3200 p
.PrintKeyBool("samplerMirrorClampToEdge", static_cast<bool>(obj
.samplerMirrorClampToEdge
));
3201 p
.PrintKeyBool("drawIndirectCount", static_cast<bool>(obj
.drawIndirectCount
));
3202 p
.PrintKeyBool("storageBuffer8BitAccess", static_cast<bool>(obj
.storageBuffer8BitAccess
));
3203 p
.PrintKeyBool("uniformAndStorageBuffer8BitAccess", static_cast<bool>(obj
.uniformAndStorageBuffer8BitAccess
));
3204 p
.PrintKeyBool("storagePushConstant8", static_cast<bool>(obj
.storagePushConstant8
));
3205 p
.PrintKeyBool("shaderBufferInt64Atomics", static_cast<bool>(obj
.shaderBufferInt64Atomics
));
3206 p
.PrintKeyBool("shaderSharedInt64Atomics", static_cast<bool>(obj
.shaderSharedInt64Atomics
));
3207 p
.PrintKeyBool("shaderFloat16", static_cast<bool>(obj
.shaderFloat16
));
3208 p
.PrintKeyBool("shaderInt8", static_cast<bool>(obj
.shaderInt8
));
3209 p
.PrintKeyBool("descriptorIndexing", static_cast<bool>(obj
.descriptorIndexing
));
3210 p
.PrintKeyBool("shaderInputAttachmentArrayDynamicIndexing", static_cast<bool>(obj
.shaderInputAttachmentArrayDynamicIndexing
));
3211 p
.PrintKeyBool("shaderUniformTexelBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderUniformTexelBufferArrayDynamicIndexing
));
3212 p
.PrintKeyBool("shaderStorageTexelBufferArrayDynamicIndexing", static_cast<bool>(obj
.shaderStorageTexelBufferArrayDynamicIndexing
));
3213 p
.PrintKeyBool("shaderUniformBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderUniformBufferArrayNonUniformIndexing
));
3214 p
.PrintKeyBool("shaderSampledImageArrayNonUniformIndexing", static_cast<bool>(obj
.shaderSampledImageArrayNonUniformIndexing
));
3215 p
.PrintKeyBool("shaderStorageBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageBufferArrayNonUniformIndexing
));
3216 p
.PrintKeyBool("shaderStorageImageArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageImageArrayNonUniformIndexing
));
3217 p
.PrintKeyBool("shaderInputAttachmentArrayNonUniformIndexing", static_cast<bool>(obj
.shaderInputAttachmentArrayNonUniformIndexing
));
3218 p
.PrintKeyBool("shaderUniformTexelBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderUniformTexelBufferArrayNonUniformIndexing
));
3219 p
.PrintKeyBool("shaderStorageTexelBufferArrayNonUniformIndexing", static_cast<bool>(obj
.shaderStorageTexelBufferArrayNonUniformIndexing
));
3220 p
.PrintKeyBool("descriptorBindingUniformBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingUniformBufferUpdateAfterBind
));
3221 p
.PrintKeyBool("descriptorBindingSampledImageUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingSampledImageUpdateAfterBind
));
3222 p
.PrintKeyBool("descriptorBindingStorageImageUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageImageUpdateAfterBind
));
3223 p
.PrintKeyBool("descriptorBindingStorageBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageBufferUpdateAfterBind
));
3224 p
.PrintKeyBool("descriptorBindingUniformTexelBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingUniformTexelBufferUpdateAfterBind
));
3225 p
.PrintKeyBool("descriptorBindingStorageTexelBufferUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingStorageTexelBufferUpdateAfterBind
));
3226 p
.PrintKeyBool("descriptorBindingUpdateUnusedWhilePending", static_cast<bool>(obj
.descriptorBindingUpdateUnusedWhilePending
));
3227 p
.PrintKeyBool("descriptorBindingPartiallyBound", static_cast<bool>(obj
.descriptorBindingPartiallyBound
));
3228 p
.PrintKeyBool("descriptorBindingVariableDescriptorCount", static_cast<bool>(obj
.descriptorBindingVariableDescriptorCount
));
3229 p
.PrintKeyBool("runtimeDescriptorArray", static_cast<bool>(obj
.runtimeDescriptorArray
));
3230 p
.PrintKeyBool("samplerFilterMinmax", static_cast<bool>(obj
.samplerFilterMinmax
));
3231 p
.PrintKeyBool("scalarBlockLayout", static_cast<bool>(obj
.scalarBlockLayout
));
3232 p
.PrintKeyBool("imagelessFramebuffer", static_cast<bool>(obj
.imagelessFramebuffer
));
3233 p
.PrintKeyBool("uniformBufferStandardLayout", static_cast<bool>(obj
.uniformBufferStandardLayout
));
3234 p
.PrintKeyBool("shaderSubgroupExtendedTypes", static_cast<bool>(obj
.shaderSubgroupExtendedTypes
));
3235 p
.PrintKeyBool("separateDepthStencilLayouts", static_cast<bool>(obj
.separateDepthStencilLayouts
));
3236 p
.PrintKeyBool("hostQueryReset", static_cast<bool>(obj
.hostQueryReset
));
3237 p
.PrintKeyBool("timelineSemaphore", static_cast<bool>(obj
.timelineSemaphore
));
3238 p
.PrintKeyBool("bufferDeviceAddress", static_cast<bool>(obj
.bufferDeviceAddress
));
3239 p
.PrintKeyBool("bufferDeviceAddressCaptureReplay", static_cast<bool>(obj
.bufferDeviceAddressCaptureReplay
));
3240 p
.PrintKeyBool("bufferDeviceAddressMultiDevice", static_cast<bool>(obj
.bufferDeviceAddressMultiDevice
));
3241 p
.PrintKeyBool("vulkanMemoryModel", static_cast<bool>(obj
.vulkanMemoryModel
));
3242 p
.PrintKeyBool("vulkanMemoryModelDeviceScope", static_cast<bool>(obj
.vulkanMemoryModelDeviceScope
));
3243 p
.PrintKeyBool("vulkanMemoryModelAvailabilityVisibilityChains", static_cast<bool>(obj
.vulkanMemoryModelAvailabilityVisibilityChains
));
3244 p
.PrintKeyBool("shaderOutputViewportIndex", static_cast<bool>(obj
.shaderOutputViewportIndex
));
3245 p
.PrintKeyBool("shaderOutputLayer", static_cast<bool>(obj
.shaderOutputLayer
));
3246 p
.PrintKeyBool("subgroupBroadcastDynamicId", static_cast<bool>(obj
.subgroupBroadcastDynamicId
));
3248 void DumpVkPhysicalDeviceVulkan12Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan12Properties
&obj
) {
3249 ObjectWrapper object
{p
, name
};
3250 p
.SetMinKeyWidth(52);
3251 DumpVkDriverId(p
, "driverID", obj
.driverID
);
3252 p
.PrintKeyString("driverName", obj
.driverName
);
3253 p
.PrintKeyString("driverInfo", obj
.driverInfo
);
3254 DumpVkConformanceVersion(p
, "conformanceVersion", obj
.conformanceVersion
);
3255 DumpVkShaderFloatControlsIndependence(p
, "denormBehaviorIndependence", obj
.denormBehaviorIndependence
);
3256 DumpVkShaderFloatControlsIndependence(p
, "roundingModeIndependence", obj
.roundingModeIndependence
);
3257 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat16", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat16
));
3258 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat32", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat32
));
3259 p
.PrintKeyBool("shaderSignedZeroInfNanPreserveFloat64", static_cast<bool>(obj
.shaderSignedZeroInfNanPreserveFloat64
));
3260 p
.PrintKeyBool("shaderDenormPreserveFloat16", static_cast<bool>(obj
.shaderDenormPreserveFloat16
));
3261 p
.PrintKeyBool("shaderDenormPreserveFloat32", static_cast<bool>(obj
.shaderDenormPreserveFloat32
));
3262 p
.PrintKeyBool("shaderDenormPreserveFloat64", static_cast<bool>(obj
.shaderDenormPreserveFloat64
));
3263 p
.PrintKeyBool("shaderDenormFlushToZeroFloat16", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat16
));
3264 p
.PrintKeyBool("shaderDenormFlushToZeroFloat32", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat32
));
3265 p
.PrintKeyBool("shaderDenormFlushToZeroFloat64", static_cast<bool>(obj
.shaderDenormFlushToZeroFloat64
));
3266 p
.PrintKeyBool("shaderRoundingModeRTEFloat16", static_cast<bool>(obj
.shaderRoundingModeRTEFloat16
));
3267 p
.PrintKeyBool("shaderRoundingModeRTEFloat32", static_cast<bool>(obj
.shaderRoundingModeRTEFloat32
));
3268 p
.PrintKeyBool("shaderRoundingModeRTEFloat64", static_cast<bool>(obj
.shaderRoundingModeRTEFloat64
));
3269 p
.PrintKeyBool("shaderRoundingModeRTZFloat16", static_cast<bool>(obj
.shaderRoundingModeRTZFloat16
));
3270 p
.PrintKeyBool("shaderRoundingModeRTZFloat32", static_cast<bool>(obj
.shaderRoundingModeRTZFloat32
));
3271 p
.PrintKeyBool("shaderRoundingModeRTZFloat64", static_cast<bool>(obj
.shaderRoundingModeRTZFloat64
));
3272 p
.PrintKeyValue("maxUpdateAfterBindDescriptorsInAllPools", obj
.maxUpdateAfterBindDescriptorsInAllPools
);
3273 p
.PrintKeyBool("shaderUniformBufferArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderUniformBufferArrayNonUniformIndexingNative
));
3274 p
.PrintKeyBool("shaderSampledImageArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderSampledImageArrayNonUniformIndexingNative
));
3275 p
.PrintKeyBool("shaderStorageBufferArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderStorageBufferArrayNonUniformIndexingNative
));
3276 p
.PrintKeyBool("shaderStorageImageArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderStorageImageArrayNonUniformIndexingNative
));
3277 p
.PrintKeyBool("shaderInputAttachmentArrayNonUniformIndexingNative", static_cast<bool>(obj
.shaderInputAttachmentArrayNonUniformIndexingNative
));
3278 p
.PrintKeyBool("robustBufferAccessUpdateAfterBind", static_cast<bool>(obj
.robustBufferAccessUpdateAfterBind
));
3279 p
.PrintKeyBool("quadDivergentImplicitLod", static_cast<bool>(obj
.quadDivergentImplicitLod
));
3280 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindSamplers", obj
.maxPerStageDescriptorUpdateAfterBindSamplers
);
3281 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindUniformBuffers", obj
.maxPerStageDescriptorUpdateAfterBindUniformBuffers
);
3282 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindStorageBuffers", obj
.maxPerStageDescriptorUpdateAfterBindStorageBuffers
);
3283 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindSampledImages", obj
.maxPerStageDescriptorUpdateAfterBindSampledImages
);
3284 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindStorageImages", obj
.maxPerStageDescriptorUpdateAfterBindStorageImages
);
3285 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindInputAttachments", obj
.maxPerStageDescriptorUpdateAfterBindInputAttachments
);
3286 p
.PrintKeyValue("maxPerStageUpdateAfterBindResources", obj
.maxPerStageUpdateAfterBindResources
);
3287 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindSamplers", obj
.maxDescriptorSetUpdateAfterBindSamplers
);
3288 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindUniformBuffers", obj
.maxDescriptorSetUpdateAfterBindUniformBuffers
);
3289 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindUniformBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
);
3290 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageBuffers", obj
.maxDescriptorSetUpdateAfterBindStorageBuffers
);
3291 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageBuffersDynamic", obj
.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
);
3292 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindSampledImages", obj
.maxDescriptorSetUpdateAfterBindSampledImages
);
3293 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindStorageImages", obj
.maxDescriptorSetUpdateAfterBindStorageImages
);
3294 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindInputAttachments", obj
.maxDescriptorSetUpdateAfterBindInputAttachments
);
3295 DumpVkResolveModeFlags(p
, "supportedDepthResolveModes", obj
.supportedDepthResolveModes
);
3296 DumpVkResolveModeFlags(p
, "supportedStencilResolveModes", obj
.supportedStencilResolveModes
);
3297 p
.PrintKeyBool("independentResolveNone", static_cast<bool>(obj
.independentResolveNone
));
3298 p
.PrintKeyBool("independentResolve", static_cast<bool>(obj
.independentResolve
));
3299 p
.PrintKeyBool("filterMinmaxSingleComponentFormats", static_cast<bool>(obj
.filterMinmaxSingleComponentFormats
));
3300 p
.PrintKeyBool("filterMinmaxImageComponentMapping", static_cast<bool>(obj
.filterMinmaxImageComponentMapping
));
3301 p
.PrintKeyValue("maxTimelineSemaphoreValueDifference", obj
.maxTimelineSemaphoreValueDifference
);
3302 DumpVkSampleCountFlags(p
, "framebufferIntegerColorSampleCounts", obj
.framebufferIntegerColorSampleCounts
);
3304 void DumpVkPhysicalDeviceVulkan13Features(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan13Features
&obj
) {
3305 ObjectWrapper object
{p
, name
};
3306 p
.SetMinKeyWidth(50);
3307 p
.PrintKeyBool("robustImageAccess", static_cast<bool>(obj
.robustImageAccess
));
3308 p
.PrintKeyBool("inlineUniformBlock", static_cast<bool>(obj
.inlineUniformBlock
));
3309 p
.PrintKeyBool("descriptorBindingInlineUniformBlockUpdateAfterBind", static_cast<bool>(obj
.descriptorBindingInlineUniformBlockUpdateAfterBind
));
3310 p
.PrintKeyBool("pipelineCreationCacheControl", static_cast<bool>(obj
.pipelineCreationCacheControl
));
3311 p
.PrintKeyBool("privateData", static_cast<bool>(obj
.privateData
));
3312 p
.PrintKeyBool("shaderDemoteToHelperInvocation", static_cast<bool>(obj
.shaderDemoteToHelperInvocation
));
3313 p
.PrintKeyBool("shaderTerminateInvocation", static_cast<bool>(obj
.shaderTerminateInvocation
));
3314 p
.PrintKeyBool("subgroupSizeControl", static_cast<bool>(obj
.subgroupSizeControl
));
3315 p
.PrintKeyBool("computeFullSubgroups", static_cast<bool>(obj
.computeFullSubgroups
));
3316 p
.PrintKeyBool("synchronization2", static_cast<bool>(obj
.synchronization2
));
3317 p
.PrintKeyBool("textureCompressionASTC_HDR", static_cast<bool>(obj
.textureCompressionASTC_HDR
));
3318 p
.PrintKeyBool("shaderZeroInitializeWorkgroupMemory", static_cast<bool>(obj
.shaderZeroInitializeWorkgroupMemory
));
3319 p
.PrintKeyBool("dynamicRendering", static_cast<bool>(obj
.dynamicRendering
));
3320 p
.PrintKeyBool("shaderIntegerDotProduct", static_cast<bool>(obj
.shaderIntegerDotProduct
));
3321 p
.PrintKeyBool("maintenance4", static_cast<bool>(obj
.maintenance4
));
3323 void DumpVkPhysicalDeviceVulkan13Properties(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkan13Properties
&obj
) {
3324 ObjectWrapper object
{p
, name
};
3325 p
.SetMinKeyWidth(77);
3326 p
.PrintKeyValue("minSubgroupSize", obj
.minSubgroupSize
);
3327 p
.PrintKeyValue("maxSubgroupSize", obj
.maxSubgroupSize
);
3328 p
.PrintKeyValue("maxComputeWorkgroupSubgroups", obj
.maxComputeWorkgroupSubgroups
);
3329 DumpVkShaderStageFlags(p
, "requiredSubgroupSizeStages", obj
.requiredSubgroupSizeStages
);
3330 p
.PrintKeyValue("maxInlineUniformBlockSize", obj
.maxInlineUniformBlockSize
);
3331 p
.PrintKeyValue("maxPerStageDescriptorInlineUniformBlocks", obj
.maxPerStageDescriptorInlineUniformBlocks
);
3332 p
.PrintKeyValue("maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks", obj
.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
);
3333 p
.PrintKeyValue("maxDescriptorSetInlineUniformBlocks", obj
.maxDescriptorSetInlineUniformBlocks
);
3334 p
.PrintKeyValue("maxDescriptorSetUpdateAfterBindInlineUniformBlocks", obj
.maxDescriptorSetUpdateAfterBindInlineUniformBlocks
);
3335 p
.PrintKeyValue("maxInlineUniformTotalSize", obj
.maxInlineUniformTotalSize
);
3336 p
.PrintKeyBool("integerDotProduct8BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct8BitUnsignedAccelerated
));
3337 p
.PrintKeyBool("integerDotProduct8BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct8BitSignedAccelerated
));
3338 p
.PrintKeyBool("integerDotProduct8BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct8BitMixedSignednessAccelerated
));
3339 p
.PrintKeyBool("integerDotProduct4x8BitPackedUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedUnsignedAccelerated
));
3340 p
.PrintKeyBool("integerDotProduct4x8BitPackedSignedAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedSignedAccelerated
));
3341 p
.PrintKeyBool("integerDotProduct4x8BitPackedMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct4x8BitPackedMixedSignednessAccelerated
));
3342 p
.PrintKeyBool("integerDotProduct16BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct16BitUnsignedAccelerated
));
3343 p
.PrintKeyBool("integerDotProduct16BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct16BitSignedAccelerated
));
3344 p
.PrintKeyBool("integerDotProduct16BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct16BitMixedSignednessAccelerated
));
3345 p
.PrintKeyBool("integerDotProduct32BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct32BitUnsignedAccelerated
));
3346 p
.PrintKeyBool("integerDotProduct32BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct32BitSignedAccelerated
));
3347 p
.PrintKeyBool("integerDotProduct32BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct32BitMixedSignednessAccelerated
));
3348 p
.PrintKeyBool("integerDotProduct64BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProduct64BitUnsignedAccelerated
));
3349 p
.PrintKeyBool("integerDotProduct64BitSignedAccelerated", static_cast<bool>(obj
.integerDotProduct64BitSignedAccelerated
));
3350 p
.PrintKeyBool("integerDotProduct64BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProduct64BitMixedSignednessAccelerated
));
3351 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated
));
3352 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitSignedAccelerated
));
3353 p
.PrintKeyBool("integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated
));
3354 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated
));
3355 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated
));
3356 p
.PrintKeyBool("integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated
));
3357 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated
));
3358 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitSignedAccelerated
));
3359 p
.PrintKeyBool("integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated
));
3360 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated
));
3361 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitSignedAccelerated
));
3362 p
.PrintKeyBool("integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated
));
3363 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitUnsignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated
));
3364 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitSignedAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitSignedAccelerated
));
3365 p
.PrintKeyBool("integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated", static_cast<bool>(obj
.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated
));
3366 p
.PrintKeyValue("storageTexelBufferOffsetAlignmentBytes", to_hex_str(p
, obj
.storageTexelBufferOffsetAlignmentBytes
));
3367 p
.PrintKeyBool("storageTexelBufferOffsetSingleTexelAlignment", static_cast<bool>(obj
.storageTexelBufferOffsetSingleTexelAlignment
));
3368 p
.PrintKeyValue("uniformTexelBufferOffsetAlignmentBytes", to_hex_str(p
, obj
.uniformTexelBufferOffsetAlignmentBytes
));
3369 p
.PrintKeyBool("uniformTexelBufferOffsetSingleTexelAlignment", static_cast<bool>(obj
.uniformTexelBufferOffsetSingleTexelAlignment
));
3370 p
.PrintKeyValue("maxBufferSize", to_hex_str(p
, obj
.maxBufferSize
));
3372 void DumpVkPhysicalDeviceVulkanMemoryModelFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceVulkanMemoryModelFeatures
&obj
) {
3373 ObjectWrapper object
{p
, name
};
3374 p
.SetMinKeyWidth(45);
3375 p
.PrintKeyBool("vulkanMemoryModel", static_cast<bool>(obj
.vulkanMemoryModel
));
3376 p
.PrintKeyBool("vulkanMemoryModelDeviceScope", static_cast<bool>(obj
.vulkanMemoryModelDeviceScope
));
3377 p
.PrintKeyBool("vulkanMemoryModelAvailabilityVisibilityChains", static_cast<bool>(obj
.vulkanMemoryModelAvailabilityVisibilityChains
));
3379 void DumpVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(Printer
&p
, std::string name
, const VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
&obj
) {
3380 ObjectWrapper object
{p
, name
};
3381 p
.SetMinKeyWidth(46);
3382 p
.PrintKeyBool("workgroupMemoryExplicitLayout", static_cast<bool>(obj
.workgroupMemoryExplicitLayout
));
3383 p
.PrintKeyBool("workgroupMemoryExplicitLayoutScalarBlockLayout", static_cast<bool>(obj
.workgroupMemoryExplicitLayoutScalarBlockLayout
));
3384 p
.PrintKeyBool("workgroupMemoryExplicitLayout8BitAccess", static_cast<bool>(obj
.workgroupMemoryExplicitLayout8BitAccess
));
3385 p
.PrintKeyBool("workgroupMemoryExplicitLayout16BitAccess", static_cast<bool>(obj
.workgroupMemoryExplicitLayout16BitAccess
));
3387 void DumpVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
&obj
) {
3388 ObjectWrapper object
{p
, name
};
3389 p
.SetMinKeyWidth(21);
3390 p
.PrintKeyBool("ycbcr2plane444Formats", static_cast<bool>(obj
.ycbcr2plane444Formats
));
3392 void DumpVkPhysicalDeviceYcbcrImageArraysFeaturesEXT(Printer
&p
, std::string name
, const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
&obj
) {
3393 ObjectWrapper object
{p
, name
};
3394 p
.SetMinKeyWidth(16);
3395 p
.PrintKeyBool("ycbcrImageArrays", static_cast<bool>(obj
.ycbcrImageArrays
));
3397 void DumpVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(Printer
&p
, std::string name
, const VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
&obj
) {
3398 ObjectWrapper object
{p
, name
};
3399 p
.SetMinKeyWidth(35);
3400 p
.PrintKeyBool("shaderZeroInitializeWorkgroupMemory", static_cast<bool>(obj
.shaderZeroInitializeWorkgroupMemory
));
3402 void DumpVkQueueFamilyGlobalPriorityPropertiesKHR(Printer
&p
, std::string name
, const VkQueueFamilyGlobalPriorityPropertiesKHR
&obj
) {
3403 ObjectWrapper object
{p
, name
};
3404 p
.SetMinKeyWidth(14);
3405 p
.PrintKeyValue("priorityCount", obj
.priorityCount
);
3406 ArrayWrapper
arr(p
,"priorities", obj
.priorityCount
);
3407 for (uint32_t i
= 0; i
< obj
.priorityCount
; i
++) {
3408 if (p
.Type() == OutputType::json
)
3409 p
.PrintString(std::string("VK_") + VkQueueGlobalPriorityKHRString(obj
.priorities
[i
]));
3411 p
.PrintString(VkQueueGlobalPriorityKHRString(obj
.priorities
[i
]));
3414 void DumpVkQueueFamilyQueryResultStatusPropertiesKHR(Printer
&p
, std::string name
, const VkQueueFamilyQueryResultStatusPropertiesKHR
&obj
) {
3415 ObjectWrapper object
{p
, name
};
3416 p
.SetMinKeyWidth(24);
3417 p
.PrintKeyBool("queryResultStatusSupport", static_cast<bool>(obj
.queryResultStatusSupport
));
3419 void DumpVkQueueFamilyVideoPropertiesKHR(Printer
&p
, std::string name
, const VkQueueFamilyVideoPropertiesKHR
&obj
) {
3420 ObjectWrapper object
{p
, name
};
3421 DumpVkVideoCodecOperationFlagsKHR(p
, "videoCodecOperations", obj
.videoCodecOperations
);
3423 void DumpVkSharedPresentSurfaceCapabilitiesKHR(Printer
&p
, std::string name
, const VkSharedPresentSurfaceCapabilitiesKHR
&obj
) {
3424 ObjectWrapper object
{p
, name
};
3425 DumpVkImageUsageFlags(p
, "sharedPresentSupportedUsageFlags", obj
.sharedPresentSupportedUsageFlags
);
3427 void DumpVkSubpassResolvePerformanceQueryEXT(Printer
&p
, std::string name
, const VkSubpassResolvePerformanceQueryEXT
&obj
) {
3428 ObjectWrapper object
{p
, name
};
3429 p
.SetMinKeyWidth(7);
3430 p
.PrintKeyBool("optimal", static_cast<bool>(obj
.optimal
));
3432 #ifdef VK_USE_PLATFORM_WIN32_KHR
3433 void DumpVkSurfaceCapabilitiesFullScreenExclusiveEXT(Printer
&p
, std::string name
, const VkSurfaceCapabilitiesFullScreenExclusiveEXT
&obj
) {
3434 ObjectWrapper object
{p
, name
};
3435 p
.SetMinKeyWidth(28);
3436 p
.PrintKeyBool("fullScreenExclusiveSupported", static_cast<bool>(obj
.fullScreenExclusiveSupported
));
3438 #endif // VK_USE_PLATFORM_WIN32_KHR
3439 void DumpVkSurfaceCapabilitiesKHR(Printer
&p
, std::string name
, const VkSurfaceCapabilitiesKHR
&obj
) {
3440 ObjectWrapper object
{p
, name
};
3441 p
.SetMinKeyWidth(19);
3442 p
.PrintKeyValue("minImageCount", obj
.minImageCount
);
3443 p
.PrintKeyValue("maxImageCount", obj
.maxImageCount
);
3444 DumpVkExtent2D(p
, "currentExtent", obj
.currentExtent
);
3445 DumpVkExtent2D(p
, "minImageExtent", obj
.minImageExtent
);
3446 DumpVkExtent2D(p
, "maxImageExtent", obj
.maxImageExtent
);
3447 p
.PrintKeyValue("maxImageArrayLayers", obj
.maxImageArrayLayers
);
3448 DumpVkSurfaceTransformFlagsKHR(p
, "supportedTransforms", obj
.supportedTransforms
);
3449 DumpVkSurfaceTransformFlagBitsKHR(p
, "currentTransform", obj
.currentTransform
);
3450 DumpVkCompositeAlphaFlagsKHR(p
, "supportedCompositeAlpha", obj
.supportedCompositeAlpha
);
3451 DumpVkImageUsageFlags(p
, "supportedUsageFlags", obj
.supportedUsageFlags
);
3453 void DumpVkSurfaceFormatKHR(Printer
&p
, std::string name
, const VkSurfaceFormatKHR
&obj
) {
3454 ObjectWrapper object
{p
, name
};
3455 DumpVkFormat(p
, "format", obj
.format
);
3456 DumpVkColorSpaceKHR(p
, "colorSpace", obj
.colorSpace
);
3458 void DumpVkSurfacePresentModeCompatibilityEXT(Printer
&p
, std::string name
, const VkSurfacePresentModeCompatibilityEXT
&obj
) {
3459 ObjectWrapper object
{p
, name
};
3460 p
.SetMinKeyWidth(31);
3461 p
.PrintKeyValue("presentModeCount", obj
.presentModeCount
);
3462 if (obj
.presentModeCount
== 0 || obj
.pPresentModes
== nullptr) {
3463 p
.PrintKeyString("pPresentModes", "NULL");
3465 ArrayWrapper
arr(p
,"pPresentModes", obj
.presentModeCount
);
3466 for (uint32_t i
= 0; i
< obj
.presentModeCount
; i
++) {
3467 DumpVkPresentModeKHR(p
, std::to_string(i
), obj
.pPresentModes
[i
]);
3471 void DumpVkSurfacePresentScalingCapabilitiesEXT(Printer
&p
, std::string name
, const VkSurfacePresentScalingCapabilitiesEXT
&obj
) {
3472 ObjectWrapper object
{p
, name
};
3473 DumpVkPresentScalingFlagsEXT(p
, "supportedPresentScaling", obj
.supportedPresentScaling
);
3474 DumpVkPresentGravityFlagsEXT(p
, "supportedPresentGravityX", obj
.supportedPresentGravityX
);
3475 DumpVkPresentGravityFlagsEXT(p
, "supportedPresentGravityY", obj
.supportedPresentGravityY
);
3476 DumpVkExtent2D(p
, "minScaledImageExtent", obj
.minScaledImageExtent
);
3477 DumpVkExtent2D(p
, "maxScaledImageExtent", obj
.maxScaledImageExtent
);
3479 void DumpVkSurfaceProtectedCapabilitiesKHR(Printer
&p
, std::string name
, const VkSurfaceProtectedCapabilitiesKHR
&obj
) {
3480 ObjectWrapper object
{p
, name
};
3481 p
.SetMinKeyWidth(17);
3482 p
.PrintKeyBool("supportsProtected", static_cast<bool>(obj
.supportsProtected
));
3484 struct phys_device_props2_chain
{
3485 phys_device_props2_chain() = default;
3486 phys_device_props2_chain(const phys_device_props2_chain
&) = delete;
3487 phys_device_props2_chain
& operator=(const phys_device_props2_chain
&) = delete;
3488 phys_device_props2_chain(phys_device_props2_chain
&&) = delete;
3489 phys_device_props2_chain
& operator=(phys_device_props2_chain
&&) = delete;
3490 void* start_of_chain
= nullptr;
3491 VkPhysicalDeviceAccelerationStructurePropertiesKHR PhysicalDeviceAccelerationStructurePropertiesKHR
{};
3492 VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT PhysicalDeviceBlendOperationAdvancedPropertiesEXT
{};
3493 VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR PhysicalDeviceComputeShaderDerivativesPropertiesKHR
{};
3494 VkPhysicalDeviceConservativeRasterizationPropertiesEXT PhysicalDeviceConservativeRasterizationPropertiesEXT
{};
3495 VkPhysicalDeviceCooperativeMatrixPropertiesKHR PhysicalDeviceCooperativeMatrixPropertiesKHR
{};
3496 VkPhysicalDeviceCustomBorderColorPropertiesEXT PhysicalDeviceCustomBorderColorPropertiesEXT
{};
3497 VkPhysicalDeviceDepthStencilResolveProperties PhysicalDeviceDepthStencilResolveProperties
{};
3498 VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
{};
3499 VkPhysicalDeviceDescriptorBufferPropertiesEXT PhysicalDeviceDescriptorBufferPropertiesEXT
{};
3500 VkPhysicalDeviceDescriptorIndexingProperties PhysicalDeviceDescriptorIndexingProperties
{};
3501 VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
{};
3502 VkPhysicalDeviceDiscardRectanglePropertiesEXT PhysicalDeviceDiscardRectanglePropertiesEXT
{};
3503 VkPhysicalDeviceDriverProperties PhysicalDeviceDriverProperties
{};
3504 VkPhysicalDeviceDrmPropertiesEXT PhysicalDeviceDrmPropertiesEXT
{};
3505 VkPhysicalDeviceExtendedDynamicState3PropertiesEXT PhysicalDeviceExtendedDynamicState3PropertiesEXT
{};
3506 VkPhysicalDeviceExternalMemoryHostPropertiesEXT PhysicalDeviceExternalMemoryHostPropertiesEXT
{};
3507 VkPhysicalDeviceFloatControlsProperties PhysicalDeviceFloatControlsProperties
{};
3508 VkPhysicalDeviceFragmentDensityMap2PropertiesEXT PhysicalDeviceFragmentDensityMap2PropertiesEXT
{};
3509 VkPhysicalDeviceFragmentDensityMapPropertiesEXT PhysicalDeviceFragmentDensityMapPropertiesEXT
{};
3510 VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
{};
3511 VkPhysicalDeviceFragmentShadingRatePropertiesKHR PhysicalDeviceFragmentShadingRatePropertiesKHR
{};
3512 VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
{};
3513 VkPhysicalDeviceHostImageCopyPropertiesEXT PhysicalDeviceHostImageCopyPropertiesEXT
{};
3514 std::vector
<VkImageLayout
> VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopySrcLayouts
;
3515 std::vector
<VkImageLayout
> VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopyDstLayouts
;
3516 VkPhysicalDeviceIDProperties PhysicalDeviceIDProperties
{};
3517 VkPhysicalDeviceInlineUniformBlockProperties PhysicalDeviceInlineUniformBlockProperties
{};
3518 VkPhysicalDeviceLayeredApiPropertiesListKHR PhysicalDeviceLayeredApiPropertiesListKHR
{};
3519 std::vector
<VkPhysicalDeviceLayeredApiPropertiesKHR
> VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis
;
3520 VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT PhysicalDeviceLegacyVertexAttributesPropertiesEXT
{};
3521 VkPhysicalDeviceLineRasterizationPropertiesKHR PhysicalDeviceLineRasterizationPropertiesKHR
{};
3522 VkPhysicalDeviceMaintenance3Properties PhysicalDeviceMaintenance3Properties
{};
3523 VkPhysicalDeviceMaintenance4Properties PhysicalDeviceMaintenance4Properties
{};
3524 VkPhysicalDeviceMaintenance5PropertiesKHR PhysicalDeviceMaintenance5PropertiesKHR
{};
3525 VkPhysicalDeviceMaintenance6PropertiesKHR PhysicalDeviceMaintenance6PropertiesKHR
{};
3526 VkPhysicalDeviceMaintenance7PropertiesKHR PhysicalDeviceMaintenance7PropertiesKHR
{};
3527 VkPhysicalDeviceMapMemoryPlacedPropertiesEXT PhysicalDeviceMapMemoryPlacedPropertiesEXT
{};
3528 VkPhysicalDeviceMeshShaderPropertiesEXT PhysicalDeviceMeshShaderPropertiesEXT
{};
3529 VkPhysicalDeviceMultiDrawPropertiesEXT PhysicalDeviceMultiDrawPropertiesEXT
{};
3530 VkPhysicalDeviceMultiviewProperties PhysicalDeviceMultiviewProperties
{};
3531 VkPhysicalDeviceNestedCommandBufferPropertiesEXT PhysicalDeviceNestedCommandBufferPropertiesEXT
{};
3532 VkPhysicalDeviceOpacityMicromapPropertiesEXT PhysicalDeviceOpacityMicromapPropertiesEXT
{};
3533 VkPhysicalDevicePCIBusInfoPropertiesEXT PhysicalDevicePCIBusInfoPropertiesEXT
{};
3534 VkPhysicalDevicePerformanceQueryPropertiesKHR PhysicalDevicePerformanceQueryPropertiesKHR
{};
3535 VkPhysicalDevicePipelineBinaryPropertiesKHR PhysicalDevicePipelineBinaryPropertiesKHR
{};
3536 VkPhysicalDevicePipelineRobustnessPropertiesEXT PhysicalDevicePipelineRobustnessPropertiesEXT
{};
3537 VkPhysicalDevicePointClippingProperties PhysicalDevicePointClippingProperties
{};
3538 #ifdef VK_ENABLE_BETA_EXTENSIONS
3539 VkPhysicalDevicePortabilitySubsetPropertiesKHR PhysicalDevicePortabilitySubsetPropertiesKHR
{};
3540 #endif // VK_ENABLE_BETA_EXTENSIONS
3541 VkPhysicalDeviceProtectedMemoryProperties PhysicalDeviceProtectedMemoryProperties
{};
3542 VkPhysicalDeviceProvokingVertexPropertiesEXT PhysicalDeviceProvokingVertexPropertiesEXT
{};
3543 VkPhysicalDevicePushDescriptorPropertiesKHR PhysicalDevicePushDescriptorPropertiesKHR
{};
3544 VkPhysicalDeviceRayTracingPipelinePropertiesKHR PhysicalDeviceRayTracingPipelinePropertiesKHR
{};
3545 VkPhysicalDeviceRobustness2PropertiesEXT PhysicalDeviceRobustness2PropertiesEXT
{};
3546 VkPhysicalDeviceSampleLocationsPropertiesEXT PhysicalDeviceSampleLocationsPropertiesEXT
{};
3547 VkPhysicalDeviceSamplerFilterMinmaxProperties PhysicalDeviceSamplerFilterMinmaxProperties
{};
3548 VkPhysicalDeviceShaderIntegerDotProductProperties PhysicalDeviceShaderIntegerDotProductProperties
{};
3549 VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT PhysicalDeviceShaderModuleIdentifierPropertiesEXT
{};
3550 VkPhysicalDeviceShaderObjectPropertiesEXT PhysicalDeviceShaderObjectPropertiesEXT
{};
3551 VkPhysicalDeviceShaderTileImagePropertiesEXT PhysicalDeviceShaderTileImagePropertiesEXT
{};
3552 VkPhysicalDeviceSubgroupProperties PhysicalDeviceSubgroupProperties
{};
3553 VkPhysicalDeviceSubgroupSizeControlProperties PhysicalDeviceSubgroupSizeControlProperties
{};
3554 VkPhysicalDeviceTexelBufferAlignmentProperties PhysicalDeviceTexelBufferAlignmentProperties
{};
3555 VkPhysicalDeviceTimelineSemaphoreProperties PhysicalDeviceTimelineSemaphoreProperties
{};
3556 VkPhysicalDeviceTransformFeedbackPropertiesEXT PhysicalDeviceTransformFeedbackPropertiesEXT
{};
3557 VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT PhysicalDeviceVertexAttributeDivisorPropertiesEXT
{};
3558 VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR PhysicalDeviceVertexAttributeDivisorPropertiesKHR
{};
3559 VkPhysicalDeviceVulkan11Properties PhysicalDeviceVulkan11Properties
{};
3560 VkPhysicalDeviceVulkan12Properties PhysicalDeviceVulkan12Properties
{};
3561 VkPhysicalDeviceVulkan13Properties PhysicalDeviceVulkan13Properties
{};
3562 void initialize_chain(AppInstance
&inst
, AppGpu
&gpu
, bool show_promoted_structs
) noexcept
{
3563 PhysicalDeviceAccelerationStructurePropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
;
3564 PhysicalDeviceBlendOperationAdvancedPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
;
3565 PhysicalDeviceComputeShaderDerivativesPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
;
3566 PhysicalDeviceConservativeRasterizationPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
;
3567 PhysicalDeviceCooperativeMatrixPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
;
3568 PhysicalDeviceCustomBorderColorPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
;
3569 PhysicalDeviceDepthStencilResolveProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
;
3570 PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
;
3571 PhysicalDeviceDescriptorBufferPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
;
3572 PhysicalDeviceDescriptorIndexingProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
;
3573 PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT
;
3574 PhysicalDeviceDiscardRectanglePropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
;
3575 PhysicalDeviceDriverProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
;
3576 PhysicalDeviceDrmPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
;
3577 PhysicalDeviceExtendedDynamicState3PropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
;
3578 PhysicalDeviceExternalMemoryHostPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
;
3579 PhysicalDeviceFloatControlsProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
;
3580 PhysicalDeviceFragmentDensityMap2PropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
;
3581 PhysicalDeviceFragmentDensityMapPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
;
3582 PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
;
3583 PhysicalDeviceFragmentShadingRatePropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
;
3584 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
;
3585 PhysicalDeviceHostImageCopyPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
;
3586 PhysicalDeviceIDProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
;
3587 PhysicalDeviceInlineUniformBlockProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
;
3588 PhysicalDeviceLayeredApiPropertiesListKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
;
3589 PhysicalDeviceLegacyVertexAttributesPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
;
3590 PhysicalDeviceLineRasterizationPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
;
3591 PhysicalDeviceMaintenance3Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
;
3592 PhysicalDeviceMaintenance4Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
;
3593 PhysicalDeviceMaintenance5PropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
;
3594 PhysicalDeviceMaintenance6PropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
;
3595 PhysicalDeviceMaintenance7PropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
;
3596 PhysicalDeviceMapMemoryPlacedPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT
;
3597 PhysicalDeviceMeshShaderPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
;
3598 PhysicalDeviceMultiDrawPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
;
3599 PhysicalDeviceMultiviewProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
;
3600 PhysicalDeviceNestedCommandBufferPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
;
3601 PhysicalDeviceOpacityMicromapPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
;
3602 PhysicalDevicePCIBusInfoPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
;
3603 PhysicalDevicePerformanceQueryPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
;
3604 PhysicalDevicePipelineBinaryPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
;
3605 PhysicalDevicePipelineRobustnessPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
;
3606 PhysicalDevicePointClippingProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
;
3607 #ifdef VK_ENABLE_BETA_EXTENSIONS
3608 PhysicalDevicePortabilitySubsetPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
;
3609 #endif // VK_ENABLE_BETA_EXTENSIONS
3610 PhysicalDeviceProtectedMemoryProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
;
3611 PhysicalDeviceProvokingVertexPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
;
3612 PhysicalDevicePushDescriptorPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
;
3613 PhysicalDeviceRayTracingPipelinePropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
;
3614 PhysicalDeviceRobustness2PropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
;
3615 PhysicalDeviceSampleLocationsPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
;
3616 PhysicalDeviceSamplerFilterMinmaxProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
;
3617 PhysicalDeviceShaderIntegerDotProductProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
;
3618 PhysicalDeviceShaderModuleIdentifierPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
;
3619 PhysicalDeviceShaderObjectPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
;
3620 PhysicalDeviceShaderTileImagePropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
;
3621 PhysicalDeviceSubgroupProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
;
3622 PhysicalDeviceSubgroupSizeControlProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
;
3623 PhysicalDeviceTexelBufferAlignmentProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
;
3624 PhysicalDeviceTimelineSemaphoreProperties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
;
3625 PhysicalDeviceTransformFeedbackPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
;
3626 PhysicalDeviceVertexAttributeDivisorPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
;
3627 PhysicalDeviceVertexAttributeDivisorPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
;
3628 PhysicalDeviceVulkan11Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
;
3629 PhysicalDeviceVulkan12Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
;
3630 PhysicalDeviceVulkan13Properties
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
;
3631 std::vector
<VkBaseOutStructure
*> chain_members
{};
3632 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
))
3633 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAccelerationStructurePropertiesKHR
));
3634 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME
))
3635 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBlendOperationAdvancedPropertiesEXT
));
3636 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
))
3637 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceComputeShaderDerivativesPropertiesKHR
));
3638 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME
))
3639 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceConservativeRasterizationPropertiesEXT
));
3640 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME
))
3641 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceCooperativeMatrixPropertiesKHR
));
3642 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME
))
3643 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceCustomBorderColorPropertiesEXT
));
3644 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME
))
3645 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
3646 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthStencilResolveProperties
));
3647 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
))
3648 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
));
3649 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
))
3650 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorBufferPropertiesEXT
));
3651 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
))
3652 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
3653 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorIndexingProperties
));
3654 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
))
3655 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
));
3656 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME
))
3657 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDiscardRectanglePropertiesEXT
));
3658 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME
))
3659 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
3660 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDriverProperties
));
3661 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME
))
3662 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDrmPropertiesEXT
));
3663 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME
))
3664 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExtendedDynamicState3PropertiesEXT
));
3665 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME
))
3666 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExternalMemoryHostPropertiesEXT
));
3667 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
))
3668 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
3669 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFloatControlsProperties
));
3670 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME
))
3671 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentDensityMap2PropertiesEXT
));
3672 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME
))
3673 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentDensityMapPropertiesEXT
));
3674 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
))
3675 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShaderBarycentricPropertiesKHR
));
3676 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME
))
3677 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShadingRatePropertiesKHR
));
3678 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME
))
3679 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
));
3680 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME
))
3681 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceHostImageCopyPropertiesEXT
));
3682 if ((inst
.CheckExtensionEnabled(VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME
)
3683 || inst
.CheckExtensionEnabled(VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME
)
3684 || inst
.CheckExtensionEnabled(VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME
))
3685 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
3686 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceIDProperties
));
3687 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME
))
3688 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
3689 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceInlineUniformBlockProperties
));
3690 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME
))
3691 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLayeredApiPropertiesListKHR
));
3692 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME
))
3693 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLegacyVertexAttributesPropertiesEXT
));
3694 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME
)
3695 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME
))
3696 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLineRasterizationPropertiesKHR
));
3697 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_3_EXTENSION_NAME
))
3698 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
3699 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance3Properties
));
3700 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_4_EXTENSION_NAME
))
3701 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
3702 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance4Properties
));
3703 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_5_EXTENSION_NAME
))
3704 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance5PropertiesKHR
));
3705 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_6_EXTENSION_NAME
))
3706 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance6PropertiesKHR
));
3707 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME
))
3708 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance7PropertiesKHR
));
3709 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME
))
3710 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMapMemoryPlacedPropertiesEXT
));
3711 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MESH_SHADER_EXTENSION_NAME
))
3712 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMeshShaderPropertiesEXT
));
3713 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MULTI_DRAW_EXTENSION_NAME
))
3714 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultiDrawPropertiesEXT
));
3715 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MULTIVIEW_EXTENSION_NAME
))
3716 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
3717 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultiviewProperties
));
3718 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME
))
3719 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceNestedCommandBufferPropertiesEXT
));
3720 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME
))
3721 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceOpacityMicromapPropertiesEXT
));
3722 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PCI_BUS_INFO_EXTENSION_NAME
))
3723 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePCIBusInfoPropertiesEXT
));
3724 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
))
3725 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePerformanceQueryPropertiesKHR
));
3726 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PIPELINE_BINARY_EXTENSION_NAME
))
3727 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineBinaryPropertiesKHR
));
3728 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME
))
3729 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineRobustnessPropertiesEXT
));
3730 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_2_EXTENSION_NAME
))
3731 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
3732 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePointClippingProperties
));
3733 #ifdef VK_ENABLE_BETA_EXTENSIONS
3734 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
))
3735 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePortabilitySubsetPropertiesKHR
));
3736 #endif // VK_ENABLE_BETA_EXTENSIONS
3737 if (gpu
.api_version
== VK_API_VERSION_1_1
|| show_promoted_structs
)
3738 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceProtectedMemoryProperties
));
3739 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME
))
3740 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceProvokingVertexPropertiesEXT
));
3741 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME
))
3742 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePushDescriptorPropertiesKHR
));
3743 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
))
3744 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayTracingPipelinePropertiesKHR
));
3745 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME
))
3746 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRobustness2PropertiesEXT
));
3747 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME
))
3748 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSampleLocationsPropertiesEXT
));
3749 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME
))
3750 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
3751 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSamplerFilterMinmaxProperties
));
3752 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
))
3753 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
3754 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderIntegerDotProductProperties
));
3755 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME
))
3756 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderModuleIdentifierPropertiesEXT
));
3757 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_OBJECT_EXTENSION_NAME
))
3758 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderObjectPropertiesEXT
));
3759 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME
))
3760 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderTileImagePropertiesEXT
));
3761 if (gpu
.api_version
== VK_API_VERSION_1_1
|| show_promoted_structs
)
3762 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSubgroupProperties
));
3763 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME
))
3764 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
3765 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSubgroupSizeControlProperties
));
3766 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME
))
3767 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
3768 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTexelBufferAlignmentProperties
));
3769 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME
))
3770 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
3771 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTimelineSemaphoreProperties
));
3772 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
))
3773 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTransformFeedbackPropertiesEXT
));
3774 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
))
3775 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexAttributeDivisorPropertiesEXT
));
3776 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
))
3777 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexAttributeDivisorPropertiesKHR
));
3778 if ((gpu
.api_version
>= VK_API_VERSION_1_2
))
3779 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan11Properties
));
3780 if ((gpu
.api_version
>= VK_API_VERSION_1_2
))
3781 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan12Properties
));
3782 if ((gpu
.api_version
>= VK_API_VERSION_1_3
))
3783 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan13Properties
));
3785 if (!chain_members
.empty()) {
3786 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
3787 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
3789 start_of_chain
= chain_members
[0];
3793 void setup_phys_device_props2_chain(VkPhysicalDeviceProperties2
& start
, std::unique_ptr
<phys_device_props2_chain
>& chain
, AppInstance
&inst
,AppGpu
&gpu
,bool show_promoted_structs
){
3794 chain
= std::unique_ptr
<phys_device_props2_chain
>(new phys_device_props2_chain());
3795 chain
->initialize_chain(inst
,gpu
,show_promoted_structs
);
3796 start
.pNext
= chain
->start_of_chain
;
3799 void chain_iterator_phys_device_props2(Printer
&p
, AppInstance
&inst
, AppGpu
&gpu
, bool show_promoted_structs
, void * place
) {
3801 struct VkBaseOutStructure
*structure
= (struct VkBaseOutStructure
*)place
;
3803 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR
) {
3804 VkPhysicalDeviceAccelerationStructurePropertiesKHR
* props
= (VkPhysicalDeviceAccelerationStructurePropertiesKHR
*)structure
;
3805 DumpVkPhysicalDeviceAccelerationStructurePropertiesKHR(p
, "VkPhysicalDeviceAccelerationStructurePropertiesKHR", *props
);
3808 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT
) {
3809 VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
* props
= (VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
*)structure
;
3810 DumpVkPhysicalDeviceBlendOperationAdvancedPropertiesEXT(p
, "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT", *props
);
3813 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR
) {
3814 VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
* props
= (VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR
*)structure
;
3815 DumpVkPhysicalDeviceComputeShaderDerivativesPropertiesKHR(p
, "VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR", *props
);
3818 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT
) {
3819 VkPhysicalDeviceConservativeRasterizationPropertiesEXT
* props
= (VkPhysicalDeviceConservativeRasterizationPropertiesEXT
*)structure
;
3820 DumpVkPhysicalDeviceConservativeRasterizationPropertiesEXT(p
, "VkPhysicalDeviceConservativeRasterizationPropertiesEXT", *props
);
3823 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR
) {
3824 VkPhysicalDeviceCooperativeMatrixPropertiesKHR
* props
= (VkPhysicalDeviceCooperativeMatrixPropertiesKHR
*)structure
;
3825 DumpVkPhysicalDeviceCooperativeMatrixPropertiesKHR(p
, "VkPhysicalDeviceCooperativeMatrixPropertiesKHR", *props
);
3828 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT
) {
3829 VkPhysicalDeviceCustomBorderColorPropertiesEXT
* props
= (VkPhysicalDeviceCustomBorderColorPropertiesEXT
*)structure
;
3830 DumpVkPhysicalDeviceCustomBorderColorPropertiesEXT(p
, "VkPhysicalDeviceCustomBorderColorPropertiesEXT", *props
);
3833 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES
) {
3834 VkPhysicalDeviceDepthStencilResolveProperties
* props
= (VkPhysicalDeviceDepthStencilResolveProperties
*)structure
;
3835 DumpVkPhysicalDeviceDepthStencilResolveProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceDepthStencilResolveProperties":"VkPhysicalDeviceDepthStencilResolvePropertiesKHR", *props
);
3838 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT
) {
3839 VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
* props
= (VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
*)structure
;
3840 DumpVkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT(p
, "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT", *props
);
3843 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT
) {
3844 VkPhysicalDeviceDescriptorBufferPropertiesEXT
* props
= (VkPhysicalDeviceDescriptorBufferPropertiesEXT
*)structure
;
3845 DumpVkPhysicalDeviceDescriptorBufferPropertiesEXT(p
, "VkPhysicalDeviceDescriptorBufferPropertiesEXT", *props
);
3848 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES
) {
3849 VkPhysicalDeviceDescriptorIndexingProperties
* props
= (VkPhysicalDeviceDescriptorIndexingProperties
*)structure
;
3850 DumpVkPhysicalDeviceDescriptorIndexingProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceDescriptorIndexingProperties":"VkPhysicalDeviceDescriptorIndexingPropertiesEXT", *props
);
3853 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT
) {
3854 VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
* props
= (VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
*)structure
;
3855 DumpVkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT(p
, "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT", *props
);
3858 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT
) {
3859 VkPhysicalDeviceDiscardRectanglePropertiesEXT
* props
= (VkPhysicalDeviceDiscardRectanglePropertiesEXT
*)structure
;
3860 DumpVkPhysicalDeviceDiscardRectanglePropertiesEXT(p
, "VkPhysicalDeviceDiscardRectanglePropertiesEXT", *props
);
3863 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES
) {
3864 VkPhysicalDeviceDriverProperties
* props
= (VkPhysicalDeviceDriverProperties
*)structure
;
3865 DumpVkPhysicalDeviceDriverProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceDriverProperties":"VkPhysicalDeviceDriverPropertiesKHR", *props
);
3868 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT
) {
3869 VkPhysicalDeviceDrmPropertiesEXT
* props
= (VkPhysicalDeviceDrmPropertiesEXT
*)structure
;
3870 DumpVkPhysicalDeviceDrmPropertiesEXT(p
, "VkPhysicalDeviceDrmPropertiesEXT", *props
);
3873 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
) {
3874 VkPhysicalDeviceExtendedDynamicState3PropertiesEXT
* props
= (VkPhysicalDeviceExtendedDynamicState3PropertiesEXT
*)structure
;
3875 DumpVkPhysicalDeviceExtendedDynamicState3PropertiesEXT(p
, "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT", *props
);
3878 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
) {
3879 VkPhysicalDeviceExternalMemoryHostPropertiesEXT
* props
= (VkPhysicalDeviceExternalMemoryHostPropertiesEXT
*)structure
;
3880 DumpVkPhysicalDeviceExternalMemoryHostPropertiesEXT(p
, "VkPhysicalDeviceExternalMemoryHostPropertiesEXT", *props
);
3883 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES
) {
3884 VkPhysicalDeviceFloatControlsProperties
* props
= (VkPhysicalDeviceFloatControlsProperties
*)structure
;
3885 DumpVkPhysicalDeviceFloatControlsProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceFloatControlsProperties":"VkPhysicalDeviceFloatControlsPropertiesKHR", *props
);
3888 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
) {
3889 VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
* props
= (VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
*)structure
;
3890 DumpVkPhysicalDeviceFragmentDensityMap2PropertiesEXT(p
, "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT", *props
);
3893 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT
) {
3894 VkPhysicalDeviceFragmentDensityMapPropertiesEXT
* props
= (VkPhysicalDeviceFragmentDensityMapPropertiesEXT
*)structure
;
3895 DumpVkPhysicalDeviceFragmentDensityMapPropertiesEXT(p
, "VkPhysicalDeviceFragmentDensityMapPropertiesEXT", *props
);
3898 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
) {
3899 VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
* props
= (VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
*)structure
;
3900 DumpVkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR(p
, "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR", *props
);
3903 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR
) {
3904 VkPhysicalDeviceFragmentShadingRatePropertiesKHR
* props
= (VkPhysicalDeviceFragmentShadingRatePropertiesKHR
*)structure
;
3905 DumpVkPhysicalDeviceFragmentShadingRatePropertiesKHR(p
, "VkPhysicalDeviceFragmentShadingRatePropertiesKHR", *props
);
3908 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT
) {
3909 VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
* props
= (VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
*)structure
;
3910 DumpVkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT(p
, "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT", *props
);
3913 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT
) {
3914 VkPhysicalDeviceHostImageCopyPropertiesEXT
* props
= (VkPhysicalDeviceHostImageCopyPropertiesEXT
*)structure
;
3915 DumpVkPhysicalDeviceHostImageCopyPropertiesEXT(p
, "VkPhysicalDeviceHostImageCopyPropertiesEXT", *props
);
3918 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES
) {
3919 VkPhysicalDeviceIDProperties
* props
= (VkPhysicalDeviceIDProperties
*)structure
;
3920 DumpVkPhysicalDeviceIDProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceIDProperties":"VkPhysicalDeviceIDPropertiesKHR", *props
);
3923 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES
) {
3924 VkPhysicalDeviceInlineUniformBlockProperties
* props
= (VkPhysicalDeviceInlineUniformBlockProperties
*)structure
;
3925 DumpVkPhysicalDeviceInlineUniformBlockProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceInlineUniformBlockProperties":"VkPhysicalDeviceInlineUniformBlockPropertiesEXT", *props
);
3928 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR
) {
3929 VkPhysicalDeviceLayeredApiPropertiesListKHR
* props
= (VkPhysicalDeviceLayeredApiPropertiesListKHR
*)structure
;
3930 DumpVkPhysicalDeviceLayeredApiPropertiesListKHR(p
, "VkPhysicalDeviceLayeredApiPropertiesListKHR", *props
);
3933 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT
) {
3934 VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT
* props
= (VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT
*)structure
;
3935 DumpVkPhysicalDeviceLegacyVertexAttributesPropertiesEXT(p
, "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT", *props
);
3938 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR
) {
3939 VkPhysicalDeviceLineRasterizationPropertiesKHR
* props
= (VkPhysicalDeviceLineRasterizationPropertiesKHR
*)structure
;
3940 DumpVkPhysicalDeviceLineRasterizationPropertiesKHR(p
, "VkPhysicalDeviceLineRasterizationPropertiesKHR", *props
);
3943 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES
) {
3944 VkPhysicalDeviceMaintenance3Properties
* props
= (VkPhysicalDeviceMaintenance3Properties
*)structure
;
3945 DumpVkPhysicalDeviceMaintenance3Properties(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceMaintenance3Properties":"VkPhysicalDeviceMaintenance3PropertiesKHR", *props
);
3948 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES
) {
3949 VkPhysicalDeviceMaintenance4Properties
* props
= (VkPhysicalDeviceMaintenance4Properties
*)structure
;
3950 DumpVkPhysicalDeviceMaintenance4Properties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceMaintenance4Properties":"VkPhysicalDeviceMaintenance4PropertiesKHR", *props
);
3953 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR
) {
3954 VkPhysicalDeviceMaintenance5PropertiesKHR
* props
= (VkPhysicalDeviceMaintenance5PropertiesKHR
*)structure
;
3955 DumpVkPhysicalDeviceMaintenance5PropertiesKHR(p
, "VkPhysicalDeviceMaintenance5PropertiesKHR", *props
);
3958 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR
) {
3959 VkPhysicalDeviceMaintenance6PropertiesKHR
* props
= (VkPhysicalDeviceMaintenance6PropertiesKHR
*)structure
;
3960 DumpVkPhysicalDeviceMaintenance6PropertiesKHR(p
, "VkPhysicalDeviceMaintenance6PropertiesKHR", *props
);
3963 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR
) {
3964 VkPhysicalDeviceMaintenance7PropertiesKHR
* props
= (VkPhysicalDeviceMaintenance7PropertiesKHR
*)structure
;
3965 DumpVkPhysicalDeviceMaintenance7PropertiesKHR(p
, "VkPhysicalDeviceMaintenance7PropertiesKHR", *props
);
3968 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT
) {
3969 VkPhysicalDeviceMapMemoryPlacedPropertiesEXT
* props
= (VkPhysicalDeviceMapMemoryPlacedPropertiesEXT
*)structure
;
3970 DumpVkPhysicalDeviceMapMemoryPlacedPropertiesEXT(p
, "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT", *props
);
3973 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT
) {
3974 VkPhysicalDeviceMeshShaderPropertiesEXT
* props
= (VkPhysicalDeviceMeshShaderPropertiesEXT
*)structure
;
3975 DumpVkPhysicalDeviceMeshShaderPropertiesEXT(p
, "VkPhysicalDeviceMeshShaderPropertiesEXT", *props
);
3978 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT
) {
3979 VkPhysicalDeviceMultiDrawPropertiesEXT
* props
= (VkPhysicalDeviceMultiDrawPropertiesEXT
*)structure
;
3980 DumpVkPhysicalDeviceMultiDrawPropertiesEXT(p
, "VkPhysicalDeviceMultiDrawPropertiesEXT", *props
);
3983 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES
) {
3984 VkPhysicalDeviceMultiviewProperties
* props
= (VkPhysicalDeviceMultiviewProperties
*)structure
;
3985 DumpVkPhysicalDeviceMultiviewProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceMultiviewProperties":"VkPhysicalDeviceMultiviewPropertiesKHR", *props
);
3988 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT
) {
3989 VkPhysicalDeviceNestedCommandBufferPropertiesEXT
* props
= (VkPhysicalDeviceNestedCommandBufferPropertiesEXT
*)structure
;
3990 DumpVkPhysicalDeviceNestedCommandBufferPropertiesEXT(p
, "VkPhysicalDeviceNestedCommandBufferPropertiesEXT", *props
);
3993 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT
) {
3994 VkPhysicalDeviceOpacityMicromapPropertiesEXT
* props
= (VkPhysicalDeviceOpacityMicromapPropertiesEXT
*)structure
;
3995 DumpVkPhysicalDeviceOpacityMicromapPropertiesEXT(p
, "VkPhysicalDeviceOpacityMicromapPropertiesEXT", *props
);
3998 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT
) {
3999 VkPhysicalDevicePCIBusInfoPropertiesEXT
* props
= (VkPhysicalDevicePCIBusInfoPropertiesEXT
*)structure
;
4000 DumpVkPhysicalDevicePCIBusInfoPropertiesEXT(p
, "VkPhysicalDevicePCIBusInfoPropertiesEXT", *props
);
4003 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR
) {
4004 VkPhysicalDevicePerformanceQueryPropertiesKHR
* props
= (VkPhysicalDevicePerformanceQueryPropertiesKHR
*)structure
;
4005 DumpVkPhysicalDevicePerformanceQueryPropertiesKHR(p
, "VkPhysicalDevicePerformanceQueryPropertiesKHR", *props
);
4008 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR
) {
4009 VkPhysicalDevicePipelineBinaryPropertiesKHR
* props
= (VkPhysicalDevicePipelineBinaryPropertiesKHR
*)structure
;
4010 DumpVkPhysicalDevicePipelineBinaryPropertiesKHR(p
, "VkPhysicalDevicePipelineBinaryPropertiesKHR", *props
);
4013 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT
) {
4014 VkPhysicalDevicePipelineRobustnessPropertiesEXT
* props
= (VkPhysicalDevicePipelineRobustnessPropertiesEXT
*)structure
;
4015 DumpVkPhysicalDevicePipelineRobustnessPropertiesEXT(p
, "VkPhysicalDevicePipelineRobustnessPropertiesEXT", *props
);
4018 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES
) {
4019 VkPhysicalDevicePointClippingProperties
* props
= (VkPhysicalDevicePointClippingProperties
*)structure
;
4020 DumpVkPhysicalDevicePointClippingProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDevicePointClippingProperties":"VkPhysicalDevicePointClippingPropertiesKHR", *props
);
4023 #ifdef VK_ENABLE_BETA_EXTENSIONS
4024 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR
&& p
.Type() != OutputType::json
) {
4025 VkPhysicalDevicePortabilitySubsetPropertiesKHR
* props
= (VkPhysicalDevicePortabilitySubsetPropertiesKHR
*)structure
;
4026 DumpVkPhysicalDevicePortabilitySubsetPropertiesKHR(p
, "VkPhysicalDevicePortabilitySubsetPropertiesKHR", *props
);
4029 #endif // VK_ENABLE_BETA_EXTENSIONS
4030 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES
) {
4031 VkPhysicalDeviceProtectedMemoryProperties
* props
= (VkPhysicalDeviceProtectedMemoryProperties
*)structure
;
4032 DumpVkPhysicalDeviceProtectedMemoryProperties(p
, "VkPhysicalDeviceProtectedMemoryProperties", *props
);
4035 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT
) {
4036 VkPhysicalDeviceProvokingVertexPropertiesEXT
* props
= (VkPhysicalDeviceProvokingVertexPropertiesEXT
*)structure
;
4037 DumpVkPhysicalDeviceProvokingVertexPropertiesEXT(p
, "VkPhysicalDeviceProvokingVertexPropertiesEXT", *props
);
4040 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR
) {
4041 VkPhysicalDevicePushDescriptorPropertiesKHR
* props
= (VkPhysicalDevicePushDescriptorPropertiesKHR
*)structure
;
4042 DumpVkPhysicalDevicePushDescriptorPropertiesKHR(p
, "VkPhysicalDevicePushDescriptorPropertiesKHR", *props
);
4045 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR
) {
4046 VkPhysicalDeviceRayTracingPipelinePropertiesKHR
* props
= (VkPhysicalDeviceRayTracingPipelinePropertiesKHR
*)structure
;
4047 DumpVkPhysicalDeviceRayTracingPipelinePropertiesKHR(p
, "VkPhysicalDeviceRayTracingPipelinePropertiesKHR", *props
);
4050 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT
) {
4051 VkPhysicalDeviceRobustness2PropertiesEXT
* props
= (VkPhysicalDeviceRobustness2PropertiesEXT
*)structure
;
4052 DumpVkPhysicalDeviceRobustness2PropertiesEXT(p
, "VkPhysicalDeviceRobustness2PropertiesEXT", *props
);
4055 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT
) {
4056 VkPhysicalDeviceSampleLocationsPropertiesEXT
* props
= (VkPhysicalDeviceSampleLocationsPropertiesEXT
*)structure
;
4057 DumpVkPhysicalDeviceSampleLocationsPropertiesEXT(p
, "VkPhysicalDeviceSampleLocationsPropertiesEXT", *props
);
4060 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES
) {
4061 VkPhysicalDeviceSamplerFilterMinmaxProperties
* props
= (VkPhysicalDeviceSamplerFilterMinmaxProperties
*)structure
;
4062 DumpVkPhysicalDeviceSamplerFilterMinmaxProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceSamplerFilterMinmaxProperties":"VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT", *props
);
4065 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES
) {
4066 VkPhysicalDeviceShaderIntegerDotProductProperties
* props
= (VkPhysicalDeviceShaderIntegerDotProductProperties
*)structure
;
4067 DumpVkPhysicalDeviceShaderIntegerDotProductProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceShaderIntegerDotProductProperties":"VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR", *props
);
4070 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT
) {
4071 VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
* props
= (VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
*)structure
;
4072 DumpVkPhysicalDeviceShaderModuleIdentifierPropertiesEXT(p
, "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT", *props
);
4075 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT
) {
4076 VkPhysicalDeviceShaderObjectPropertiesEXT
* props
= (VkPhysicalDeviceShaderObjectPropertiesEXT
*)structure
;
4077 DumpVkPhysicalDeviceShaderObjectPropertiesEXT(p
, "VkPhysicalDeviceShaderObjectPropertiesEXT", *props
);
4080 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT
) {
4081 VkPhysicalDeviceShaderTileImagePropertiesEXT
* props
= (VkPhysicalDeviceShaderTileImagePropertiesEXT
*)structure
;
4082 DumpVkPhysicalDeviceShaderTileImagePropertiesEXT(p
, "VkPhysicalDeviceShaderTileImagePropertiesEXT", *props
);
4085 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES
) {
4086 VkPhysicalDeviceSubgroupProperties
* props
= (VkPhysicalDeviceSubgroupProperties
*)structure
;
4087 DumpVkPhysicalDeviceSubgroupProperties(p
, "VkPhysicalDeviceSubgroupProperties", *props
);
4090 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES
) {
4091 VkPhysicalDeviceSubgroupSizeControlProperties
* props
= (VkPhysicalDeviceSubgroupSizeControlProperties
*)structure
;
4092 DumpVkPhysicalDeviceSubgroupSizeControlProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceSubgroupSizeControlProperties":"VkPhysicalDeviceSubgroupSizeControlPropertiesEXT", *props
);
4095 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES
) {
4096 VkPhysicalDeviceTexelBufferAlignmentProperties
* props
= (VkPhysicalDeviceTexelBufferAlignmentProperties
*)structure
;
4097 DumpVkPhysicalDeviceTexelBufferAlignmentProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceTexelBufferAlignmentProperties":"VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT", *props
);
4100 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES
) {
4101 VkPhysicalDeviceTimelineSemaphoreProperties
* props
= (VkPhysicalDeviceTimelineSemaphoreProperties
*)structure
;
4102 DumpVkPhysicalDeviceTimelineSemaphoreProperties(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceTimelineSemaphoreProperties":"VkPhysicalDeviceTimelineSemaphorePropertiesKHR", *props
);
4105 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT
) {
4106 VkPhysicalDeviceTransformFeedbackPropertiesEXT
* props
= (VkPhysicalDeviceTransformFeedbackPropertiesEXT
*)structure
;
4107 DumpVkPhysicalDeviceTransformFeedbackPropertiesEXT(p
, "VkPhysicalDeviceTransformFeedbackPropertiesEXT", *props
);
4110 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
) {
4111 VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
* props
= (VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
*)structure
;
4112 DumpVkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(p
, "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT", *props
);
4115 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
) {
4116 VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR
* props
= (VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR
*)structure
;
4117 DumpVkPhysicalDeviceVertexAttributeDivisorPropertiesKHR(p
, "VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR", *props
);
4120 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES
) {
4121 VkPhysicalDeviceVulkan11Properties
* props
= (VkPhysicalDeviceVulkan11Properties
*)structure
;
4122 DumpVkPhysicalDeviceVulkan11Properties(p
, "VkPhysicalDeviceVulkan11Properties", *props
);
4125 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES
) {
4126 VkPhysicalDeviceVulkan12Properties
* props
= (VkPhysicalDeviceVulkan12Properties
*)structure
;
4127 DumpVkPhysicalDeviceVulkan12Properties(p
, "VkPhysicalDeviceVulkan12Properties", *props
);
4130 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES
) {
4131 VkPhysicalDeviceVulkan13Properties
* props
= (VkPhysicalDeviceVulkan13Properties
*)structure
;
4132 DumpVkPhysicalDeviceVulkan13Properties(p
, "VkPhysicalDeviceVulkan13Properties", *props
);
4135 place
= structure
->pNext
;
4139 bool prepare_phys_device_props2_twocall_chain_vectors(std::unique_ptr
<phys_device_props2_chain
>& chain
) {
4141 chain
->VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopySrcLayouts
.resize(chain
->PhysicalDeviceHostImageCopyPropertiesEXT
.copySrcLayoutCount
);
4142 chain
->PhysicalDeviceHostImageCopyPropertiesEXT
.pCopySrcLayouts
= chain
->VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopySrcLayouts
.data();
4143 chain
->VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopyDstLayouts
.resize(chain
->PhysicalDeviceHostImageCopyPropertiesEXT
.copyDstLayoutCount
);
4144 chain
->PhysicalDeviceHostImageCopyPropertiesEXT
.pCopyDstLayouts
= chain
->VkPhysicalDeviceHostImageCopyPropertiesEXT_pCopyDstLayouts
.data();
4145 chain
->VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis
.resize(chain
->PhysicalDeviceLayeredApiPropertiesListKHR
.layeredApiCount
);
4146 chain
->PhysicalDeviceLayeredApiPropertiesListKHR
.pLayeredApis
= chain
->VkPhysicalDeviceLayeredApiPropertiesListKHR_pLayeredApis
.data();
4149 struct phys_device_mem_props2_chain
{
4150 phys_device_mem_props2_chain() = default;
4151 phys_device_mem_props2_chain(const phys_device_mem_props2_chain
&) = delete;
4152 phys_device_mem_props2_chain
& operator=(const phys_device_mem_props2_chain
&) = delete;
4153 phys_device_mem_props2_chain(phys_device_mem_props2_chain
&&) = delete;
4154 phys_device_mem_props2_chain
& operator=(phys_device_mem_props2_chain
&&) = delete;
4155 void* start_of_chain
= nullptr;
4156 VkPhysicalDeviceMemoryBudgetPropertiesEXT PhysicalDeviceMemoryBudgetPropertiesEXT
{};
4157 void initialize_chain(AppGpu
&gpu
) noexcept
{
4158 PhysicalDeviceMemoryBudgetPropertiesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT
;
4159 std::vector
<VkBaseOutStructure
*> chain_members
{};
4160 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MEMORY_BUDGET_EXTENSION_NAME
))
4161 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMemoryBudgetPropertiesEXT
));
4163 if (!chain_members
.empty()) {
4164 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
4165 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
4167 start_of_chain
= chain_members
[0];
4171 void setup_phys_device_mem_props2_chain(VkPhysicalDeviceMemoryProperties2
& start
, std::unique_ptr
<phys_device_mem_props2_chain
>& chain
, AppGpu
&gpu
){
4172 chain
= std::unique_ptr
<phys_device_mem_props2_chain
>(new phys_device_mem_props2_chain());
4173 chain
->initialize_chain(gpu
);
4174 start
.pNext
= chain
->start_of_chain
;
4177 bool prepare_phys_device_mem_props2_twocall_chain_vectors(std::unique_ptr
<phys_device_mem_props2_chain
>& chain
) {
4181 struct phys_device_features2_chain
{
4182 phys_device_features2_chain() = default;
4183 phys_device_features2_chain(const phys_device_features2_chain
&) = delete;
4184 phys_device_features2_chain
& operator=(const phys_device_features2_chain
&) = delete;
4185 phys_device_features2_chain(phys_device_features2_chain
&&) = delete;
4186 phys_device_features2_chain
& operator=(phys_device_features2_chain
&&) = delete;
4187 void* start_of_chain
= nullptr;
4188 VkPhysicalDevice16BitStorageFeatures PhysicalDevice16BitStorageFeatures
{};
4189 VkPhysicalDevice4444FormatsFeaturesEXT PhysicalDevice4444FormatsFeaturesEXT
{};
4190 VkPhysicalDevice8BitStorageFeatures PhysicalDevice8BitStorageFeatures
{};
4191 VkPhysicalDeviceASTCDecodeFeaturesEXT PhysicalDeviceASTCDecodeFeaturesEXT
{};
4192 VkPhysicalDeviceAccelerationStructureFeaturesKHR PhysicalDeviceAccelerationStructureFeaturesKHR
{};
4193 VkPhysicalDeviceAddressBindingReportFeaturesEXT PhysicalDeviceAddressBindingReportFeaturesEXT
{};
4194 VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
{};
4195 VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
{};
4196 VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT PhysicalDeviceBlendOperationAdvancedFeaturesEXT
{};
4197 VkPhysicalDeviceBorderColorSwizzleFeaturesEXT PhysicalDeviceBorderColorSwizzleFeaturesEXT
{};
4198 VkPhysicalDeviceBufferDeviceAddressFeatures PhysicalDeviceBufferDeviceAddressFeatures
{};
4199 VkPhysicalDeviceBufferDeviceAddressFeaturesEXT PhysicalDeviceBufferDeviceAddressFeaturesEXT
{};
4200 VkPhysicalDeviceColorWriteEnableFeaturesEXT PhysicalDeviceColorWriteEnableFeaturesEXT
{};
4201 VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR PhysicalDeviceComputeShaderDerivativesFeaturesKHR
{};
4202 VkPhysicalDeviceConditionalRenderingFeaturesEXT PhysicalDeviceConditionalRenderingFeaturesEXT
{};
4203 VkPhysicalDeviceCooperativeMatrixFeaturesKHR PhysicalDeviceCooperativeMatrixFeaturesKHR
{};
4204 VkPhysicalDeviceCustomBorderColorFeaturesEXT PhysicalDeviceCustomBorderColorFeaturesEXT
{};
4205 VkPhysicalDeviceDepthBiasControlFeaturesEXT PhysicalDeviceDepthBiasControlFeaturesEXT
{};
4206 VkPhysicalDeviceDepthClampControlFeaturesEXT PhysicalDeviceDepthClampControlFeaturesEXT
{};
4207 VkPhysicalDeviceDepthClampZeroOneFeaturesEXT PhysicalDeviceDepthClampZeroOneFeaturesEXT
{};
4208 VkPhysicalDeviceDepthClipControlFeaturesEXT PhysicalDeviceDepthClipControlFeaturesEXT
{};
4209 VkPhysicalDeviceDepthClipEnableFeaturesEXT PhysicalDeviceDepthClipEnableFeaturesEXT
{};
4210 VkPhysicalDeviceDescriptorBufferFeaturesEXT PhysicalDeviceDescriptorBufferFeaturesEXT
{};
4211 VkPhysicalDeviceDescriptorIndexingFeatures PhysicalDeviceDescriptorIndexingFeatures
{};
4212 VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
{};
4213 VkPhysicalDeviceDeviceMemoryReportFeaturesEXT PhysicalDeviceDeviceMemoryReportFeaturesEXT
{};
4214 VkPhysicalDeviceDynamicRenderingFeatures PhysicalDeviceDynamicRenderingFeatures
{};
4215 VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR
{};
4216 VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
{};
4217 VkPhysicalDeviceExtendedDynamicState2FeaturesEXT PhysicalDeviceExtendedDynamicState2FeaturesEXT
{};
4218 VkPhysicalDeviceExtendedDynamicState3FeaturesEXT PhysicalDeviceExtendedDynamicState3FeaturesEXT
{};
4219 VkPhysicalDeviceExtendedDynamicStateFeaturesEXT PhysicalDeviceExtendedDynamicStateFeaturesEXT
{};
4220 VkPhysicalDeviceFaultFeaturesEXT PhysicalDeviceFaultFeaturesEXT
{};
4221 VkPhysicalDeviceFragmentDensityMap2FeaturesEXT PhysicalDeviceFragmentDensityMap2FeaturesEXT
{};
4222 VkPhysicalDeviceFragmentDensityMapFeaturesEXT PhysicalDeviceFragmentDensityMapFeaturesEXT
{};
4223 VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
{};
4224 VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT PhysicalDeviceFragmentShaderInterlockFeaturesEXT
{};
4225 VkPhysicalDeviceFragmentShadingRateFeaturesKHR PhysicalDeviceFragmentShadingRateFeaturesKHR
{};
4226 VkPhysicalDeviceFrameBoundaryFeaturesEXT PhysicalDeviceFrameBoundaryFeaturesEXT
{};
4227 VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR PhysicalDeviceGlobalPriorityQueryFeaturesKHR
{};
4228 VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
{};
4229 VkPhysicalDeviceHostImageCopyFeaturesEXT PhysicalDeviceHostImageCopyFeaturesEXT
{};
4230 char VkPhysicalDeviceHostImageCopyFeaturesEXT_padding
[64];
4231 VkPhysicalDeviceHostQueryResetFeatures PhysicalDeviceHostQueryResetFeatures
{};
4232 VkPhysicalDeviceImage2DViewOf3DFeaturesEXT PhysicalDeviceImage2DViewOf3DFeaturesEXT
{};
4233 VkPhysicalDeviceImageCompressionControlFeaturesEXT PhysicalDeviceImageCompressionControlFeaturesEXT
{};
4234 VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
{};
4235 VkPhysicalDeviceImageRobustnessFeatures PhysicalDeviceImageRobustnessFeatures
{};
4236 VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
{};
4237 VkPhysicalDeviceImageViewMinLodFeaturesEXT PhysicalDeviceImageViewMinLodFeaturesEXT
{};
4238 VkPhysicalDeviceImagelessFramebufferFeatures PhysicalDeviceImagelessFramebufferFeatures
{};
4239 VkPhysicalDeviceIndexTypeUint8FeaturesKHR PhysicalDeviceIndexTypeUint8FeaturesKHR
{};
4240 VkPhysicalDeviceInlineUniformBlockFeatures PhysicalDeviceInlineUniformBlockFeatures
{};
4241 VkPhysicalDeviceLegacyDitheringFeaturesEXT PhysicalDeviceLegacyDitheringFeaturesEXT
{};
4242 VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT PhysicalDeviceLegacyVertexAttributesFeaturesEXT
{};
4243 VkPhysicalDeviceLineRasterizationFeaturesKHR PhysicalDeviceLineRasterizationFeaturesKHR
{};
4244 VkPhysicalDeviceMaintenance4Features PhysicalDeviceMaintenance4Features
{};
4245 VkPhysicalDeviceMaintenance5FeaturesKHR PhysicalDeviceMaintenance5FeaturesKHR
{};
4246 VkPhysicalDeviceMaintenance6FeaturesKHR PhysicalDeviceMaintenance6FeaturesKHR
{};
4247 VkPhysicalDeviceMaintenance7FeaturesKHR PhysicalDeviceMaintenance7FeaturesKHR
{};
4248 VkPhysicalDeviceMapMemoryPlacedFeaturesEXT PhysicalDeviceMapMemoryPlacedFeaturesEXT
{};
4249 VkPhysicalDeviceMemoryPriorityFeaturesEXT PhysicalDeviceMemoryPriorityFeaturesEXT
{};
4250 VkPhysicalDeviceMeshShaderFeaturesEXT PhysicalDeviceMeshShaderFeaturesEXT
{};
4251 VkPhysicalDeviceMultiDrawFeaturesEXT PhysicalDeviceMultiDrawFeaturesEXT
{};
4252 VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
{};
4253 VkPhysicalDeviceMultiviewFeatures PhysicalDeviceMultiviewFeatures
{};
4254 VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT PhysicalDeviceMutableDescriptorTypeFeaturesEXT
{};
4255 VkPhysicalDeviceNestedCommandBufferFeaturesEXT PhysicalDeviceNestedCommandBufferFeaturesEXT
{};
4256 VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
{};
4257 VkPhysicalDeviceOpacityMicromapFeaturesEXT PhysicalDeviceOpacityMicromapFeaturesEXT
{};
4258 VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
{};
4259 VkPhysicalDevicePerformanceQueryFeaturesKHR PhysicalDevicePerformanceQueryFeaturesKHR
{};
4260 VkPhysicalDevicePipelineBinaryFeaturesKHR PhysicalDevicePipelineBinaryFeaturesKHR
{};
4261 VkPhysicalDevicePipelineCreationCacheControlFeatures PhysicalDevicePipelineCreationCacheControlFeatures
{};
4262 VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
{};
4263 VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
{};
4264 VkPhysicalDevicePipelinePropertiesFeaturesEXT PhysicalDevicePipelinePropertiesFeaturesEXT
{};
4265 VkPhysicalDevicePipelineProtectedAccessFeaturesEXT PhysicalDevicePipelineProtectedAccessFeaturesEXT
{};
4266 VkPhysicalDevicePipelineRobustnessFeaturesEXT PhysicalDevicePipelineRobustnessFeaturesEXT
{};
4267 #ifdef VK_ENABLE_BETA_EXTENSIONS
4268 VkPhysicalDevicePortabilitySubsetFeaturesKHR PhysicalDevicePortabilitySubsetFeaturesKHR
{};
4269 #endif // VK_ENABLE_BETA_EXTENSIONS
4270 VkPhysicalDevicePresentIdFeaturesKHR PhysicalDevicePresentIdFeaturesKHR
{};
4271 VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
{};
4272 VkPhysicalDevicePresentWaitFeaturesKHR PhysicalDevicePresentWaitFeaturesKHR
{};
4273 VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
{};
4274 VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
{};
4275 VkPhysicalDevicePrivateDataFeatures PhysicalDevicePrivateDataFeatures
{};
4276 VkPhysicalDeviceProtectedMemoryFeatures PhysicalDeviceProtectedMemoryFeatures
{};
4277 VkPhysicalDeviceProvokingVertexFeaturesEXT PhysicalDeviceProvokingVertexFeaturesEXT
{};
4278 VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT PhysicalDeviceRGBA10X6FormatsFeaturesEXT
{};
4279 VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
{};
4280 VkPhysicalDeviceRayQueryFeaturesKHR PhysicalDeviceRayQueryFeaturesKHR
{};
4281 VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR PhysicalDeviceRayTracingMaintenance1FeaturesKHR
{};
4282 VkPhysicalDeviceRayTracingPipelineFeaturesKHR PhysicalDeviceRayTracingPipelineFeaturesKHR
{};
4283 VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR PhysicalDeviceRayTracingPositionFetchFeaturesKHR
{};
4284 VkPhysicalDeviceRobustness2FeaturesEXT PhysicalDeviceRobustness2FeaturesEXT
{};
4285 VkPhysicalDeviceSamplerYcbcrConversionFeatures PhysicalDeviceSamplerYcbcrConversionFeatures
{};
4286 VkPhysicalDeviceScalarBlockLayoutFeatures PhysicalDeviceScalarBlockLayoutFeatures
{};
4287 VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures PhysicalDeviceSeparateDepthStencilLayoutsFeatures
{};
4288 VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT PhysicalDeviceShaderAtomicFloat2FeaturesEXT
{};
4289 VkPhysicalDeviceShaderAtomicFloatFeaturesEXT PhysicalDeviceShaderAtomicFloatFeaturesEXT
{};
4290 VkPhysicalDeviceShaderAtomicInt64Features PhysicalDeviceShaderAtomicInt64Features
{};
4291 VkPhysicalDeviceShaderClockFeaturesKHR PhysicalDeviceShaderClockFeaturesKHR
{};
4292 VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures PhysicalDeviceShaderDemoteToHelperInvocationFeatures
{};
4293 VkPhysicalDeviceShaderDrawParametersFeatures PhysicalDeviceShaderDrawParametersFeatures
{};
4294 VkPhysicalDeviceShaderExpectAssumeFeaturesKHR PhysicalDeviceShaderExpectAssumeFeaturesKHR
{};
4295 VkPhysicalDeviceShaderFloat16Int8Features PhysicalDeviceShaderFloat16Int8Features
{};
4296 VkPhysicalDeviceShaderFloatControls2FeaturesKHR PhysicalDeviceShaderFloatControls2FeaturesKHR
{};
4297 VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
{};
4298 VkPhysicalDeviceShaderIntegerDotProductFeatures PhysicalDeviceShaderIntegerDotProductFeatures
{};
4299 char VkPhysicalDeviceShaderIntegerDotProductFeatures_padding
[64];
4300 VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
{};
4301 VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT PhysicalDeviceShaderModuleIdentifierFeaturesEXT
{};
4302 VkPhysicalDeviceShaderObjectFeaturesEXT PhysicalDeviceShaderObjectFeaturesEXT
{};
4303 VkPhysicalDeviceShaderQuadControlFeaturesKHR PhysicalDeviceShaderQuadControlFeaturesKHR
{};
4304 VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
{};
4305 VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
{};
4306 VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures PhysicalDeviceShaderSubgroupExtendedTypesFeatures
{};
4307 VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR PhysicalDeviceShaderSubgroupRotateFeaturesKHR
{};
4308 VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
{};
4309 VkPhysicalDeviceShaderTerminateInvocationFeatures PhysicalDeviceShaderTerminateInvocationFeatures
{};
4310 VkPhysicalDeviceShaderTileImageFeaturesEXT PhysicalDeviceShaderTileImageFeaturesEXT
{};
4311 VkPhysicalDeviceSubgroupSizeControlFeatures PhysicalDeviceSubgroupSizeControlFeatures
{};
4312 VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
{};
4313 VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT PhysicalDeviceSwapchainMaintenance1FeaturesEXT
{};
4314 VkPhysicalDeviceSynchronization2Features PhysicalDeviceSynchronization2Features
{};
4315 VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT PhysicalDeviceTexelBufferAlignmentFeaturesEXT
{};
4316 VkPhysicalDeviceTextureCompressionASTCHDRFeatures PhysicalDeviceTextureCompressionASTCHDRFeatures
{};
4317 VkPhysicalDeviceTimelineSemaphoreFeatures PhysicalDeviceTimelineSemaphoreFeatures
{};
4318 VkPhysicalDeviceTransformFeedbackFeaturesEXT PhysicalDeviceTransformFeedbackFeaturesEXT
{};
4319 VkPhysicalDeviceUniformBufferStandardLayoutFeatures PhysicalDeviceUniformBufferStandardLayoutFeatures
{};
4320 VkPhysicalDeviceVariablePointersFeatures PhysicalDeviceVariablePointersFeatures
{};
4321 VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR PhysicalDeviceVertexAttributeDivisorFeaturesKHR
{};
4322 VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT PhysicalDeviceVertexInputDynamicStateFeaturesEXT
{};
4323 VkPhysicalDeviceVideoMaintenance1FeaturesKHR PhysicalDeviceVideoMaintenance1FeaturesKHR
{};
4324 VkPhysicalDeviceVulkan11Features PhysicalDeviceVulkan11Features
{};
4325 VkPhysicalDeviceVulkan12Features PhysicalDeviceVulkan12Features
{};
4326 VkPhysicalDeviceVulkan13Features PhysicalDeviceVulkan13Features
{};
4327 VkPhysicalDeviceVulkanMemoryModelFeatures PhysicalDeviceVulkanMemoryModelFeatures
{};
4328 VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
{};
4329 VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
{};
4330 VkPhysicalDeviceYcbcrImageArraysFeaturesEXT PhysicalDeviceYcbcrImageArraysFeaturesEXT
{};
4331 VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
{};
4332 void initialize_chain(AppGpu
&gpu
, bool show_promoted_structs
) noexcept
{
4333 PhysicalDevice16BitStorageFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
;
4334 PhysicalDevice4444FormatsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
;
4335 PhysicalDevice8BitStorageFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
;
4336 PhysicalDeviceASTCDecodeFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
;
4337 PhysicalDeviceAccelerationStructureFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
;
4338 PhysicalDeviceAddressBindingReportFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
;
4339 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
;
4340 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
;
4341 PhysicalDeviceBlendOperationAdvancedFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
;
4342 PhysicalDeviceBorderColorSwizzleFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
;
4343 PhysicalDeviceBufferDeviceAddressFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
;
4344 PhysicalDeviceBufferDeviceAddressFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
;
4345 PhysicalDeviceColorWriteEnableFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
;
4346 PhysicalDeviceComputeShaderDerivativesFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
;
4347 PhysicalDeviceConditionalRenderingFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
;
4348 PhysicalDeviceCooperativeMatrixFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
;
4349 PhysicalDeviceCustomBorderColorFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
;
4350 PhysicalDeviceDepthBiasControlFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
;
4351 PhysicalDeviceDepthClampControlFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT
;
4352 PhysicalDeviceDepthClampZeroOneFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
;
4353 PhysicalDeviceDepthClipControlFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
;
4354 PhysicalDeviceDepthClipEnableFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
;
4355 PhysicalDeviceDescriptorBufferFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
;
4356 PhysicalDeviceDescriptorIndexingFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
;
4357 PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT
;
4358 PhysicalDeviceDeviceMemoryReportFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
;
4359 PhysicalDeviceDynamicRenderingFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
;
4360 PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
;
4361 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
;
4362 PhysicalDeviceExtendedDynamicState2FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
;
4363 PhysicalDeviceExtendedDynamicState3FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
;
4364 PhysicalDeviceExtendedDynamicStateFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
;
4365 PhysicalDeviceFaultFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
;
4366 PhysicalDeviceFragmentDensityMap2FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
;
4367 PhysicalDeviceFragmentDensityMapFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
;
4368 PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
;
4369 PhysicalDeviceFragmentShaderInterlockFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
;
4370 PhysicalDeviceFragmentShadingRateFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
;
4371 PhysicalDeviceFrameBoundaryFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
;
4372 PhysicalDeviceGlobalPriorityQueryFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
;
4373 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
;
4374 PhysicalDeviceHostImageCopyFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
;
4375 PhysicalDeviceHostQueryResetFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
;
4376 PhysicalDeviceImage2DViewOf3DFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
;
4377 PhysicalDeviceImageCompressionControlFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
;
4378 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
;
4379 PhysicalDeviceImageRobustnessFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
;
4380 PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
;
4381 PhysicalDeviceImageViewMinLodFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
;
4382 PhysicalDeviceImagelessFramebufferFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
;
4383 PhysicalDeviceIndexTypeUint8FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
;
4384 PhysicalDeviceInlineUniformBlockFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
;
4385 PhysicalDeviceLegacyDitheringFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
;
4386 PhysicalDeviceLegacyVertexAttributesFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
;
4387 PhysicalDeviceLineRasterizationFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
;
4388 PhysicalDeviceMaintenance4Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
;
4389 PhysicalDeviceMaintenance5FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
;
4390 PhysicalDeviceMaintenance6FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
;
4391 PhysicalDeviceMaintenance7FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
;
4392 PhysicalDeviceMapMemoryPlacedFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT
;
4393 PhysicalDeviceMemoryPriorityFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
;
4394 PhysicalDeviceMeshShaderFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
;
4395 PhysicalDeviceMultiDrawFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
;
4396 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
;
4397 PhysicalDeviceMultiviewFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
;
4398 PhysicalDeviceMutableDescriptorTypeFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
;
4399 PhysicalDeviceNestedCommandBufferFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
;
4400 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
;
4401 PhysicalDeviceOpacityMicromapFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
;
4402 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
;
4403 PhysicalDevicePerformanceQueryFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
;
4404 PhysicalDevicePipelineBinaryFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
;
4405 PhysicalDevicePipelineCreationCacheControlFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
;
4406 PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
;
4407 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
;
4408 PhysicalDevicePipelinePropertiesFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
;
4409 PhysicalDevicePipelineProtectedAccessFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT
;
4410 PhysicalDevicePipelineRobustnessFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
;
4411 #ifdef VK_ENABLE_BETA_EXTENSIONS
4412 PhysicalDevicePortabilitySubsetFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
;
4413 #endif // VK_ENABLE_BETA_EXTENSIONS
4414 PhysicalDevicePresentIdFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
;
4415 PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
;
4416 PhysicalDevicePresentWaitFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
;
4417 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
;
4418 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
;
4419 PhysicalDevicePrivateDataFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
;
4420 PhysicalDeviceProtectedMemoryFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
;
4421 PhysicalDeviceProvokingVertexFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
;
4422 PhysicalDeviceRGBA10X6FormatsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
;
4423 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
;
4424 PhysicalDeviceRayQueryFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
;
4425 PhysicalDeviceRayTracingMaintenance1FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
;
4426 PhysicalDeviceRayTracingPipelineFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
;
4427 PhysicalDeviceRayTracingPositionFetchFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
;
4428 PhysicalDeviceRobustness2FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
;
4429 PhysicalDeviceSamplerYcbcrConversionFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
;
4430 PhysicalDeviceScalarBlockLayoutFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
;
4431 PhysicalDeviceSeparateDepthStencilLayoutsFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
;
4432 PhysicalDeviceShaderAtomicFloat2FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
;
4433 PhysicalDeviceShaderAtomicFloatFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
;
4434 PhysicalDeviceShaderAtomicInt64Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
;
4435 PhysicalDeviceShaderClockFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
;
4436 PhysicalDeviceShaderDemoteToHelperInvocationFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
;
4437 PhysicalDeviceShaderDrawParametersFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
;
4438 PhysicalDeviceShaderExpectAssumeFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
;
4439 PhysicalDeviceShaderFloat16Int8Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
;
4440 PhysicalDeviceShaderFloatControls2FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
;
4441 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
;
4442 PhysicalDeviceShaderIntegerDotProductFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
;
4443 PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
;
4444 PhysicalDeviceShaderModuleIdentifierFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
;
4445 PhysicalDeviceShaderObjectFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
;
4446 PhysicalDeviceShaderQuadControlFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
;
4447 PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
;
4448 PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
;
4449 PhysicalDeviceShaderSubgroupExtendedTypesFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
;
4450 PhysicalDeviceShaderSubgroupRotateFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
;
4451 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
;
4452 PhysicalDeviceShaderTerminateInvocationFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
;
4453 PhysicalDeviceShaderTileImageFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
;
4454 PhysicalDeviceSubgroupSizeControlFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
;
4455 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
;
4456 PhysicalDeviceSwapchainMaintenance1FeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
;
4457 PhysicalDeviceSynchronization2Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
;
4458 PhysicalDeviceTexelBufferAlignmentFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
;
4459 PhysicalDeviceTextureCompressionASTCHDRFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
;
4460 PhysicalDeviceTimelineSemaphoreFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
;
4461 PhysicalDeviceTransformFeedbackFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
;
4462 PhysicalDeviceUniformBufferStandardLayoutFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
;
4463 PhysicalDeviceVariablePointersFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
;
4464 PhysicalDeviceVertexAttributeDivisorFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
;
4465 PhysicalDeviceVertexInputDynamicStateFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
;
4466 PhysicalDeviceVideoMaintenance1FeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR
;
4467 PhysicalDeviceVulkan11Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
;
4468 PhysicalDeviceVulkan12Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
;
4469 PhysicalDeviceVulkan13Features
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
;
4470 PhysicalDeviceVulkanMemoryModelFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
;
4471 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
;
4472 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
;
4473 PhysicalDeviceYcbcrImageArraysFeaturesEXT
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
;
4474 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
.sType
= VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
;
4475 std::vector
<VkBaseOutStructure
*> chain_members
{};
4476 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_16BIT_STORAGE_EXTENSION_NAME
))
4477 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
4478 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevice16BitStorageFeatures
));
4479 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_4444_FORMATS_EXTENSION_NAME
))
4480 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevice4444FormatsFeaturesEXT
));
4481 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_8BIT_STORAGE_EXTENSION_NAME
))
4482 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4483 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevice8BitStorageFeatures
));
4484 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME
))
4485 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceASTCDecodeFeaturesEXT
));
4486 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
))
4487 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAccelerationStructureFeaturesKHR
));
4488 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME
))
4489 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAddressBindingReportFeaturesEXT
));
4490 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME
))
4491 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
));
4492 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME
))
4493 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
));
4494 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME
))
4495 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBlendOperationAdvancedFeaturesEXT
));
4496 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME
))
4497 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBorderColorSwizzleFeaturesEXT
));
4498 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
))
4499 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4500 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBufferDeviceAddressFeatures
));
4501 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
))
4502 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceBufferDeviceAddressFeaturesEXT
));
4503 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME
))
4504 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceColorWriteEnableFeaturesEXT
));
4505 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
)
4506 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME
))
4507 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceComputeShaderDerivativesFeaturesKHR
));
4508 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME
))
4509 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceConditionalRenderingFeaturesEXT
));
4510 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME
))
4511 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceCooperativeMatrixFeaturesKHR
));
4512 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME
))
4513 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceCustomBorderColorFeaturesEXT
));
4514 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME
))
4515 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthBiasControlFeaturesEXT
));
4516 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME
))
4517 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthClampControlFeaturesEXT
));
4518 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME
))
4519 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthClampZeroOneFeaturesEXT
));
4520 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME
))
4521 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthClipControlFeaturesEXT
));
4522 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME
))
4523 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDepthClipEnableFeaturesEXT
));
4524 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME
))
4525 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorBufferFeaturesEXT
));
4526 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
))
4527 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4528 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDescriptorIndexingFeatures
));
4529 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME
))
4530 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
));
4531 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME
))
4532 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDeviceMemoryReportFeaturesEXT
));
4533 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME
))
4534 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4535 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDynamicRenderingFeatures
));
4536 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME
))
4537 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDynamicRenderingLocalReadFeaturesKHR
));
4538 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME
))
4539 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
));
4540 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME
))
4541 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExtendedDynamicState2FeaturesEXT
));
4542 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME
))
4543 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExtendedDynamicState3FeaturesEXT
));
4544 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME
))
4545 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceExtendedDynamicStateFeaturesEXT
));
4546 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_DEVICE_FAULT_EXTENSION_NAME
))
4547 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFaultFeaturesEXT
));
4548 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME
))
4549 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentDensityMap2FeaturesEXT
));
4550 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME
))
4551 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentDensityMapFeaturesEXT
));
4552 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
)
4553 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME
))
4554 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShaderBarycentricFeaturesKHR
));
4555 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME
))
4556 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShaderInterlockFeaturesEXT
));
4557 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME
))
4558 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFragmentShadingRateFeaturesKHR
));
4559 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME
))
4560 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceFrameBoundaryFeaturesEXT
));
4561 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME
)
4562 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME
))
4563 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceGlobalPriorityQueryFeaturesKHR
));
4564 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME
))
4565 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
));
4566 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME
))
4567 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceHostImageCopyFeaturesEXT
));
4568 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME
))
4569 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4570 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceHostQueryResetFeatures
));
4571 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME
))
4572 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImage2DViewOf3DFeaturesEXT
));
4573 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME
))
4574 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageCompressionControlFeaturesEXT
));
4575 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME
))
4576 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
));
4577 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME
))
4578 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4579 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageRobustnessFeatures
));
4580 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME
))
4581 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageSlicedViewOf3DFeaturesEXT
));
4582 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME
))
4583 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImageViewMinLodFeaturesEXT
));
4584 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME
))
4585 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4586 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceImagelessFramebufferFeatures
));
4587 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME
)
4588 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME
))
4589 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceIndexTypeUint8FeaturesKHR
));
4590 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME
))
4591 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4592 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceInlineUniformBlockFeatures
));
4593 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_DITHERING_EXTENSION_NAME
))
4594 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLegacyDitheringFeaturesEXT
));
4595 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME
))
4596 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLegacyVertexAttributesFeaturesEXT
));
4597 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME
)
4598 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME
))
4599 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceLineRasterizationFeaturesKHR
));
4600 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_4_EXTENSION_NAME
))
4601 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4602 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance4Features
));
4603 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_5_EXTENSION_NAME
))
4604 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance5FeaturesKHR
));
4605 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_6_EXTENSION_NAME
))
4606 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance6FeaturesKHR
));
4607 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MAINTENANCE_7_EXTENSION_NAME
))
4608 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMaintenance7FeaturesKHR
));
4609 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME
))
4610 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMapMemoryPlacedFeaturesEXT
));
4611 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME
))
4612 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMemoryPriorityFeaturesEXT
));
4613 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MESH_SHADER_EXTENSION_NAME
))
4614 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMeshShaderFeaturesEXT
));
4615 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MULTI_DRAW_EXTENSION_NAME
))
4616 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultiDrawFeaturesEXT
));
4617 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME
))
4618 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
));
4619 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_MULTIVIEW_EXTENSION_NAME
))
4620 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
4621 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMultiviewFeatures
));
4622 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME
)
4623 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME
))
4624 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceMutableDescriptorTypeFeaturesEXT
));
4625 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME
))
4626 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceNestedCommandBufferFeaturesEXT
));
4627 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME
))
4628 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceNonSeamlessCubeMapFeaturesEXT
));
4629 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME
))
4630 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceOpacityMicromapFeaturesEXT
));
4631 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME
))
4632 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
));
4633 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME
))
4634 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePerformanceQueryFeaturesKHR
));
4635 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PIPELINE_BINARY_EXTENSION_NAME
))
4636 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineBinaryFeaturesKHR
));
4637 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME
))
4638 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4639 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineCreationCacheControlFeatures
));
4640 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME
))
4641 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineExecutablePropertiesFeaturesKHR
));
4642 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME
))
4643 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
));
4644 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME
))
4645 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelinePropertiesFeaturesEXT
));
4646 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME
))
4647 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineProtectedAccessFeaturesEXT
));
4648 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME
))
4649 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePipelineRobustnessFeaturesEXT
));
4650 #ifdef VK_ENABLE_BETA_EXTENSIONS
4651 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
))
4652 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePortabilitySubsetFeaturesKHR
));
4653 #endif // VK_ENABLE_BETA_EXTENSIONS
4654 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PRESENT_ID_EXTENSION_NAME
))
4655 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePresentIdFeaturesKHR
));
4656 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME
))
4657 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
));
4658 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_PRESENT_WAIT_EXTENSION_NAME
))
4659 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePresentWaitFeaturesKHR
));
4660 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME
))
4661 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
));
4662 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME
))
4663 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
));
4664 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PRIVATE_DATA_EXTENSION_NAME
))
4665 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4666 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDevicePrivateDataFeatures
));
4667 if (gpu
.api_version
== VK_API_VERSION_1_1
|| show_promoted_structs
)
4668 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceProtectedMemoryFeatures
));
4669 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME
))
4670 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceProvokingVertexFeaturesEXT
));
4671 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME
))
4672 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRGBA10X6FormatsFeaturesEXT
));
4673 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME
)
4674 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME
))
4675 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
));
4676 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_QUERY_EXTENSION_NAME
))
4677 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayQueryFeaturesKHR
));
4678 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME
))
4679 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayTracingMaintenance1FeaturesKHR
));
4680 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
))
4681 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayTracingPipelineFeaturesKHR
));
4682 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME
))
4683 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRayTracingPositionFetchFeaturesKHR
));
4684 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_ROBUSTNESS_2_EXTENSION_NAME
))
4685 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceRobustness2FeaturesEXT
));
4686 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME
))
4687 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
4688 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSamplerYcbcrConversionFeatures
));
4689 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME
))
4690 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4691 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceScalarBlockLayoutFeatures
));
4692 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME
))
4693 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4694 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSeparateDepthStencilLayoutsFeatures
));
4695 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME
))
4696 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderAtomicFloat2FeaturesEXT
));
4697 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
))
4698 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderAtomicFloatFeaturesEXT
));
4699 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME
))
4700 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4701 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderAtomicInt64Features
));
4702 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_CLOCK_EXTENSION_NAME
))
4703 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderClockFeaturesKHR
));
4704 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME
))
4705 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4706 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderDemoteToHelperInvocationFeatures
));
4707 if (gpu
.api_version
== VK_API_VERSION_1_1
|| show_promoted_structs
)
4708 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderDrawParametersFeatures
));
4709 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME
))
4710 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderExpectAssumeFeaturesKHR
));
4711 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME
))
4712 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4713 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderFloat16Int8Features
));
4714 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME
))
4715 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderFloatControls2FeaturesKHR
));
4716 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME
))
4717 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
));
4718 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
))
4719 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4720 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderIntegerDotProductFeatures
));
4721 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME
))
4722 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
));
4723 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME
))
4724 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderModuleIdentifierFeaturesEXT
));
4725 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_OBJECT_EXTENSION_NAME
))
4726 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderObjectFeaturesEXT
));
4727 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME
))
4728 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderQuadControlFeaturesKHR
));
4729 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME
))
4730 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
));
4731 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME
))
4732 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderReplicatedCompositesFeaturesEXT
));
4733 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME
))
4734 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4735 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderSubgroupExtendedTypesFeatures
));
4736 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME
))
4737 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderSubgroupRotateFeaturesKHR
));
4738 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME
))
4739 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
));
4740 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME
))
4741 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4742 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderTerminateInvocationFeatures
));
4743 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME
))
4744 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceShaderTileImageFeaturesEXT
));
4745 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME
))
4746 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4747 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSubgroupSizeControlFeatures
));
4748 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME
))
4749 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSubpassMergeFeedbackFeaturesEXT
));
4750 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME
))
4751 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSwapchainMaintenance1FeaturesEXT
));
4752 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME
))
4753 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4754 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceSynchronization2Features
));
4755 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME
))
4756 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTexelBufferAlignmentFeaturesEXT
));
4757 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME
))
4758 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4759 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTextureCompressionASTCHDRFeatures
));
4760 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME
))
4761 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4762 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTimelineSemaphoreFeatures
));
4763 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME
))
4764 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceTransformFeedbackFeaturesEXT
));
4765 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME
))
4766 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4767 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceUniformBufferStandardLayoutFeatures
));
4768 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME
))
4769 && (gpu
.api_version
< VK_API_VERSION_1_1
|| show_promoted_structs
))
4770 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVariablePointersFeatures
));
4771 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
)
4772 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
))
4773 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexAttributeDivisorFeaturesKHR
));
4774 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME
))
4775 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVertexInputDynamicStateFeaturesEXT
));
4776 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME
))
4777 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVideoMaintenance1FeaturesKHR
));
4778 if ((gpu
.api_version
>= VK_API_VERSION_1_2
))
4779 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan11Features
));
4780 if ((gpu
.api_version
>= VK_API_VERSION_1_2
))
4781 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan12Features
));
4782 if ((gpu
.api_version
>= VK_API_VERSION_1_3
))
4783 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkan13Features
));
4784 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME
))
4785 && (gpu
.api_version
< VK_API_VERSION_1_2
|| show_promoted_structs
))
4786 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceVulkanMemoryModelFeatures
));
4787 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME
))
4788 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
));
4789 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME
))
4790 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
));
4791 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME
))
4792 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceYcbcrImageArraysFeaturesEXT
));
4793 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME
))
4794 && (gpu
.api_version
< VK_API_VERSION_1_3
|| show_promoted_structs
))
4795 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
));
4797 if (!chain_members
.empty()) {
4798 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
4799 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
4801 start_of_chain
= chain_members
[0];
4805 void setup_phys_device_features2_chain(VkPhysicalDeviceFeatures2
& start
, std::unique_ptr
<phys_device_features2_chain
>& chain
, AppGpu
&gpu
,bool show_promoted_structs
){
4806 chain
= std::unique_ptr
<phys_device_features2_chain
>(new phys_device_features2_chain());
4807 chain
->initialize_chain(gpu
,show_promoted_structs
);
4808 start
.pNext
= chain
->start_of_chain
;
4811 void chain_iterator_phys_device_features2(Printer
&p
, AppGpu
&gpu
, bool show_promoted_structs
, void * place
) {
4813 struct VkBaseOutStructure
*structure
= (struct VkBaseOutStructure
*)place
;
4815 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES
) {
4816 VkPhysicalDevice16BitStorageFeatures
* props
= (VkPhysicalDevice16BitStorageFeatures
*)structure
;
4817 DumpVkPhysicalDevice16BitStorageFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDevice16BitStorageFeatures":"VkPhysicalDevice16BitStorageFeaturesKHR", *props
);
4820 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT
) {
4821 VkPhysicalDevice4444FormatsFeaturesEXT
* props
= (VkPhysicalDevice4444FormatsFeaturesEXT
*)structure
;
4822 DumpVkPhysicalDevice4444FormatsFeaturesEXT(p
, "VkPhysicalDevice4444FormatsFeaturesEXT", *props
);
4825 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES
) {
4826 VkPhysicalDevice8BitStorageFeatures
* props
= (VkPhysicalDevice8BitStorageFeatures
*)structure
;
4827 DumpVkPhysicalDevice8BitStorageFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDevice8BitStorageFeatures":"VkPhysicalDevice8BitStorageFeaturesKHR", *props
);
4830 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT
) {
4831 VkPhysicalDeviceASTCDecodeFeaturesEXT
* props
= (VkPhysicalDeviceASTCDecodeFeaturesEXT
*)structure
;
4832 DumpVkPhysicalDeviceASTCDecodeFeaturesEXT(p
, "VkPhysicalDeviceASTCDecodeFeaturesEXT", *props
);
4835 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR
) {
4836 VkPhysicalDeviceAccelerationStructureFeaturesKHR
* props
= (VkPhysicalDeviceAccelerationStructureFeaturesKHR
*)structure
;
4837 DumpVkPhysicalDeviceAccelerationStructureFeaturesKHR(p
, "VkPhysicalDeviceAccelerationStructureFeaturesKHR", *props
);
4840 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT
) {
4841 VkPhysicalDeviceAddressBindingReportFeaturesEXT
* props
= (VkPhysicalDeviceAddressBindingReportFeaturesEXT
*)structure
;
4842 DumpVkPhysicalDeviceAddressBindingReportFeaturesEXT(p
, "VkPhysicalDeviceAddressBindingReportFeaturesEXT", *props
);
4845 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
) {
4846 VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
* props
= (VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT
*)structure
;
4847 DumpVkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT(p
, "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT", *props
);
4850 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT
) {
4851 VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
* props
= (VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
*)structure
;
4852 DumpVkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT(p
, "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT", *props
);
4855 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT
) {
4856 VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
* props
= (VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
*)structure
;
4857 DumpVkPhysicalDeviceBlendOperationAdvancedFeaturesEXT(p
, "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT", *props
);
4860 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
) {
4861 VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
* props
= (VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
*)structure
;
4862 DumpVkPhysicalDeviceBorderColorSwizzleFeaturesEXT(p
, "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT", *props
);
4865 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES
) {
4866 VkPhysicalDeviceBufferDeviceAddressFeatures
* props
= (VkPhysicalDeviceBufferDeviceAddressFeatures
*)structure
;
4867 DumpVkPhysicalDeviceBufferDeviceAddressFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceBufferDeviceAddressFeatures":"VkPhysicalDeviceBufferDeviceAddressFeaturesKHR", *props
);
4870 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT
) {
4871 VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
* props
= (VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
*)structure
;
4872 DumpVkPhysicalDeviceBufferDeviceAddressFeaturesEXT(p
, "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT", *props
);
4875 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT
) {
4876 VkPhysicalDeviceColorWriteEnableFeaturesEXT
* props
= (VkPhysicalDeviceColorWriteEnableFeaturesEXT
*)structure
;
4877 DumpVkPhysicalDeviceColorWriteEnableFeaturesEXT(p
, "VkPhysicalDeviceColorWriteEnableFeaturesEXT", *props
);
4880 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR
) {
4881 VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
* props
= (VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR
*)structure
;
4882 DumpVkPhysicalDeviceComputeShaderDerivativesFeaturesKHR(p
, "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR", *props
);
4885 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT
) {
4886 VkPhysicalDeviceConditionalRenderingFeaturesEXT
* props
= (VkPhysicalDeviceConditionalRenderingFeaturesEXT
*)structure
;
4887 DumpVkPhysicalDeviceConditionalRenderingFeaturesEXT(p
, "VkPhysicalDeviceConditionalRenderingFeaturesEXT", *props
);
4890 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR
) {
4891 VkPhysicalDeviceCooperativeMatrixFeaturesKHR
* props
= (VkPhysicalDeviceCooperativeMatrixFeaturesKHR
*)structure
;
4892 DumpVkPhysicalDeviceCooperativeMatrixFeaturesKHR(p
, "VkPhysicalDeviceCooperativeMatrixFeaturesKHR", *props
);
4895 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT
) {
4896 VkPhysicalDeviceCustomBorderColorFeaturesEXT
* props
= (VkPhysicalDeviceCustomBorderColorFeaturesEXT
*)structure
;
4897 DumpVkPhysicalDeviceCustomBorderColorFeaturesEXT(p
, "VkPhysicalDeviceCustomBorderColorFeaturesEXT", *props
);
4900 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT
) {
4901 VkPhysicalDeviceDepthBiasControlFeaturesEXT
* props
= (VkPhysicalDeviceDepthBiasControlFeaturesEXT
*)structure
;
4902 DumpVkPhysicalDeviceDepthBiasControlFeaturesEXT(p
, "VkPhysicalDeviceDepthBiasControlFeaturesEXT", *props
);
4905 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT
) {
4906 VkPhysicalDeviceDepthClampControlFeaturesEXT
* props
= (VkPhysicalDeviceDepthClampControlFeaturesEXT
*)structure
;
4907 DumpVkPhysicalDeviceDepthClampControlFeaturesEXT(p
, "VkPhysicalDeviceDepthClampControlFeaturesEXT", *props
);
4910 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
) {
4911 VkPhysicalDeviceDepthClampZeroOneFeaturesEXT
* props
= (VkPhysicalDeviceDepthClampZeroOneFeaturesEXT
*)structure
;
4912 DumpVkPhysicalDeviceDepthClampZeroOneFeaturesEXT(p
, "VkPhysicalDeviceDepthClampZeroOneFeaturesEXT", *props
);
4915 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT
) {
4916 VkPhysicalDeviceDepthClipControlFeaturesEXT
* props
= (VkPhysicalDeviceDepthClipControlFeaturesEXT
*)structure
;
4917 DumpVkPhysicalDeviceDepthClipControlFeaturesEXT(p
, "VkPhysicalDeviceDepthClipControlFeaturesEXT", *props
);
4920 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT
) {
4921 VkPhysicalDeviceDepthClipEnableFeaturesEXT
* props
= (VkPhysicalDeviceDepthClipEnableFeaturesEXT
*)structure
;
4922 DumpVkPhysicalDeviceDepthClipEnableFeaturesEXT(p
, "VkPhysicalDeviceDepthClipEnableFeaturesEXT", *props
);
4925 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT
) {
4926 VkPhysicalDeviceDescriptorBufferFeaturesEXT
* props
= (VkPhysicalDeviceDescriptorBufferFeaturesEXT
*)structure
;
4927 DumpVkPhysicalDeviceDescriptorBufferFeaturesEXT(p
, "VkPhysicalDeviceDescriptorBufferFeaturesEXT", *props
);
4930 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES
) {
4931 VkPhysicalDeviceDescriptorIndexingFeatures
* props
= (VkPhysicalDeviceDescriptorIndexingFeatures
*)structure
;
4932 DumpVkPhysicalDeviceDescriptorIndexingFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceDescriptorIndexingFeatures":"VkPhysicalDeviceDescriptorIndexingFeaturesEXT", *props
);
4935 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT
) {
4936 VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
* props
= (VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
*)structure
;
4937 DumpVkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT(p
, "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT", *props
);
4940 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT
) {
4941 VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
* props
= (VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
*)structure
;
4942 DumpVkPhysicalDeviceDeviceMemoryReportFeaturesEXT(p
, "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT", *props
);
4945 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES
) {
4946 VkPhysicalDeviceDynamicRenderingFeatures
* props
= (VkPhysicalDeviceDynamicRenderingFeatures
*)structure
;
4947 DumpVkPhysicalDeviceDynamicRenderingFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceDynamicRenderingFeatures":"VkPhysicalDeviceDynamicRenderingFeaturesKHR", *props
);
4950 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR
) {
4951 VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR
* props
= (VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR
*)structure
;
4952 DumpVkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR(p
, "VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR", *props
);
4955 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT
) {
4956 VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
* props
= (VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
*)structure
;
4957 DumpVkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT(p
, "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT", *props
);
4960 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT
) {
4961 VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
* props
= (VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
*)structure
;
4962 DumpVkPhysicalDeviceExtendedDynamicState2FeaturesEXT(p
, "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT", *props
);
4965 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
) {
4966 VkPhysicalDeviceExtendedDynamicState3FeaturesEXT
* props
= (VkPhysicalDeviceExtendedDynamicState3FeaturesEXT
*)structure
;
4967 DumpVkPhysicalDeviceExtendedDynamicState3FeaturesEXT(p
, "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT", *props
);
4970 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
) {
4971 VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
* props
= (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
*)structure
;
4972 DumpVkPhysicalDeviceExtendedDynamicStateFeaturesEXT(p
, "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT", *props
);
4975 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT
) {
4976 VkPhysicalDeviceFaultFeaturesEXT
* props
= (VkPhysicalDeviceFaultFeaturesEXT
*)structure
;
4977 DumpVkPhysicalDeviceFaultFeaturesEXT(p
, "VkPhysicalDeviceFaultFeaturesEXT", *props
);
4980 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
) {
4981 VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
* props
= (VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
*)structure
;
4982 DumpVkPhysicalDeviceFragmentDensityMap2FeaturesEXT(p
, "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT", *props
);
4985 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT
) {
4986 VkPhysicalDeviceFragmentDensityMapFeaturesEXT
* props
= (VkPhysicalDeviceFragmentDensityMapFeaturesEXT
*)structure
;
4987 DumpVkPhysicalDeviceFragmentDensityMapFeaturesEXT(p
, "VkPhysicalDeviceFragmentDensityMapFeaturesEXT", *props
);
4990 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR
) {
4991 VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
* props
= (VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
*)structure
;
4992 DumpVkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR(p
, "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR", *props
);
4995 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT
) {
4996 VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
* props
= (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
*)structure
;
4997 DumpVkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(p
, "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT", *props
);
5000 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR
) {
5001 VkPhysicalDeviceFragmentShadingRateFeaturesKHR
* props
= (VkPhysicalDeviceFragmentShadingRateFeaturesKHR
*)structure
;
5002 DumpVkPhysicalDeviceFragmentShadingRateFeaturesKHR(p
, "VkPhysicalDeviceFragmentShadingRateFeaturesKHR", *props
);
5005 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT
) {
5006 VkPhysicalDeviceFrameBoundaryFeaturesEXT
* props
= (VkPhysicalDeviceFrameBoundaryFeaturesEXT
*)structure
;
5007 DumpVkPhysicalDeviceFrameBoundaryFeaturesEXT(p
, "VkPhysicalDeviceFrameBoundaryFeaturesEXT", *props
);
5010 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
) {
5011 VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR
* props
= (VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR
*)structure
;
5012 DumpVkPhysicalDeviceGlobalPriorityQueryFeaturesKHR(p
, "VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR", *props
);
5015 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT
) {
5016 VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
* props
= (VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
*)structure
;
5017 DumpVkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT(p
, "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT", *props
);
5020 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT
) {
5021 VkPhysicalDeviceHostImageCopyFeaturesEXT
* props
= (VkPhysicalDeviceHostImageCopyFeaturesEXT
*)structure
;
5022 DumpVkPhysicalDeviceHostImageCopyFeaturesEXT(p
, "VkPhysicalDeviceHostImageCopyFeaturesEXT", *props
);
5025 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES
) {
5026 VkPhysicalDeviceHostQueryResetFeatures
* props
= (VkPhysicalDeviceHostQueryResetFeatures
*)structure
;
5027 DumpVkPhysicalDeviceHostQueryResetFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceHostQueryResetFeatures":"VkPhysicalDeviceHostQueryResetFeaturesEXT", *props
);
5030 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT
) {
5031 VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
* props
= (VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
*)structure
;
5032 DumpVkPhysicalDeviceImage2DViewOf3DFeaturesEXT(p
, "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT", *props
);
5035 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT
) {
5036 VkPhysicalDeviceImageCompressionControlFeaturesEXT
* props
= (VkPhysicalDeviceImageCompressionControlFeaturesEXT
*)structure
;
5037 DumpVkPhysicalDeviceImageCompressionControlFeaturesEXT(p
, "VkPhysicalDeviceImageCompressionControlFeaturesEXT", *props
);
5040 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT
) {
5041 VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
* props
= (VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
*)structure
;
5042 DumpVkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT(p
, "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT", *props
);
5045 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES
) {
5046 VkPhysicalDeviceImageRobustnessFeatures
* props
= (VkPhysicalDeviceImageRobustnessFeatures
*)structure
;
5047 DumpVkPhysicalDeviceImageRobustnessFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceImageRobustnessFeatures":"VkPhysicalDeviceImageRobustnessFeaturesEXT", *props
);
5050 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT
) {
5051 VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT
* props
= (VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT
*)structure
;
5052 DumpVkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT(p
, "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT", *props
);
5055 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT
) {
5056 VkPhysicalDeviceImageViewMinLodFeaturesEXT
* props
= (VkPhysicalDeviceImageViewMinLodFeaturesEXT
*)structure
;
5057 DumpVkPhysicalDeviceImageViewMinLodFeaturesEXT(p
, "VkPhysicalDeviceImageViewMinLodFeaturesEXT", *props
);
5060 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES
) {
5061 VkPhysicalDeviceImagelessFramebufferFeatures
* props
= (VkPhysicalDeviceImagelessFramebufferFeatures
*)structure
;
5062 DumpVkPhysicalDeviceImagelessFramebufferFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceImagelessFramebufferFeatures":"VkPhysicalDeviceImagelessFramebufferFeaturesKHR", *props
);
5065 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR
) {
5066 VkPhysicalDeviceIndexTypeUint8FeaturesKHR
* props
= (VkPhysicalDeviceIndexTypeUint8FeaturesKHR
*)structure
;
5067 DumpVkPhysicalDeviceIndexTypeUint8FeaturesKHR(p
, "VkPhysicalDeviceIndexTypeUint8FeaturesKHR", *props
);
5070 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES
) {
5071 VkPhysicalDeviceInlineUniformBlockFeatures
* props
= (VkPhysicalDeviceInlineUniformBlockFeatures
*)structure
;
5072 DumpVkPhysicalDeviceInlineUniformBlockFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceInlineUniformBlockFeatures":"VkPhysicalDeviceInlineUniformBlockFeaturesEXT", *props
);
5075 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT
) {
5076 VkPhysicalDeviceLegacyDitheringFeaturesEXT
* props
= (VkPhysicalDeviceLegacyDitheringFeaturesEXT
*)structure
;
5077 DumpVkPhysicalDeviceLegacyDitheringFeaturesEXT(p
, "VkPhysicalDeviceLegacyDitheringFeaturesEXT", *props
);
5080 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT
) {
5081 VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT
* props
= (VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT
*)structure
;
5082 DumpVkPhysicalDeviceLegacyVertexAttributesFeaturesEXT(p
, "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT", *props
);
5085 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR
) {
5086 VkPhysicalDeviceLineRasterizationFeaturesKHR
* props
= (VkPhysicalDeviceLineRasterizationFeaturesKHR
*)structure
;
5087 DumpVkPhysicalDeviceLineRasterizationFeaturesKHR(p
, "VkPhysicalDeviceLineRasterizationFeaturesKHR", *props
);
5090 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES
) {
5091 VkPhysicalDeviceMaintenance4Features
* props
= (VkPhysicalDeviceMaintenance4Features
*)structure
;
5092 DumpVkPhysicalDeviceMaintenance4Features(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceMaintenance4Features":"VkPhysicalDeviceMaintenance4FeaturesKHR", *props
);
5095 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR
) {
5096 VkPhysicalDeviceMaintenance5FeaturesKHR
* props
= (VkPhysicalDeviceMaintenance5FeaturesKHR
*)structure
;
5097 DumpVkPhysicalDeviceMaintenance5FeaturesKHR(p
, "VkPhysicalDeviceMaintenance5FeaturesKHR", *props
);
5100 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR
) {
5101 VkPhysicalDeviceMaintenance6FeaturesKHR
* props
= (VkPhysicalDeviceMaintenance6FeaturesKHR
*)structure
;
5102 DumpVkPhysicalDeviceMaintenance6FeaturesKHR(p
, "VkPhysicalDeviceMaintenance6FeaturesKHR", *props
);
5105 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR
) {
5106 VkPhysicalDeviceMaintenance7FeaturesKHR
* props
= (VkPhysicalDeviceMaintenance7FeaturesKHR
*)structure
;
5107 DumpVkPhysicalDeviceMaintenance7FeaturesKHR(p
, "VkPhysicalDeviceMaintenance7FeaturesKHR", *props
);
5110 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT
) {
5111 VkPhysicalDeviceMapMemoryPlacedFeaturesEXT
* props
= (VkPhysicalDeviceMapMemoryPlacedFeaturesEXT
*)structure
;
5112 DumpVkPhysicalDeviceMapMemoryPlacedFeaturesEXT(p
, "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT", *props
);
5115 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT
) {
5116 VkPhysicalDeviceMemoryPriorityFeaturesEXT
* props
= (VkPhysicalDeviceMemoryPriorityFeaturesEXT
*)structure
;
5117 DumpVkPhysicalDeviceMemoryPriorityFeaturesEXT(p
, "VkPhysicalDeviceMemoryPriorityFeaturesEXT", *props
);
5120 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT
) {
5121 VkPhysicalDeviceMeshShaderFeaturesEXT
* props
= (VkPhysicalDeviceMeshShaderFeaturesEXT
*)structure
;
5122 DumpVkPhysicalDeviceMeshShaderFeaturesEXT(p
, "VkPhysicalDeviceMeshShaderFeaturesEXT", *props
);
5125 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT
) {
5126 VkPhysicalDeviceMultiDrawFeaturesEXT
* props
= (VkPhysicalDeviceMultiDrawFeaturesEXT
*)structure
;
5127 DumpVkPhysicalDeviceMultiDrawFeaturesEXT(p
, "VkPhysicalDeviceMultiDrawFeaturesEXT", *props
);
5130 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT
) {
5131 VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
* props
= (VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
*)structure
;
5132 DumpVkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT(p
, "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT", *props
);
5135 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES
) {
5136 VkPhysicalDeviceMultiviewFeatures
* props
= (VkPhysicalDeviceMultiviewFeatures
*)structure
;
5137 DumpVkPhysicalDeviceMultiviewFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceMultiviewFeatures":"VkPhysicalDeviceMultiviewFeaturesKHR", *props
);
5140 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
) {
5141 VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT
* props
= (VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT
*)structure
;
5142 DumpVkPhysicalDeviceMutableDescriptorTypeFeaturesEXT(p
, "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT", *props
);
5145 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT
) {
5146 VkPhysicalDeviceNestedCommandBufferFeaturesEXT
* props
= (VkPhysicalDeviceNestedCommandBufferFeaturesEXT
*)structure
;
5147 DumpVkPhysicalDeviceNestedCommandBufferFeaturesEXT(p
, "VkPhysicalDeviceNestedCommandBufferFeaturesEXT", *props
);
5150 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
) {
5151 VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
* props
= (VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
*)structure
;
5152 DumpVkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT(p
, "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT", *props
);
5155 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT
) {
5156 VkPhysicalDeviceOpacityMicromapFeaturesEXT
* props
= (VkPhysicalDeviceOpacityMicromapFeaturesEXT
*)structure
;
5157 DumpVkPhysicalDeviceOpacityMicromapFeaturesEXT(p
, "VkPhysicalDeviceOpacityMicromapFeaturesEXT", *props
);
5160 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
) {
5161 VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
* props
= (VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
*)structure
;
5162 DumpVkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT(p
, "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT", *props
);
5165 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR
) {
5166 VkPhysicalDevicePerformanceQueryFeaturesKHR
* props
= (VkPhysicalDevicePerformanceQueryFeaturesKHR
*)structure
;
5167 DumpVkPhysicalDevicePerformanceQueryFeaturesKHR(p
, "VkPhysicalDevicePerformanceQueryFeaturesKHR", *props
);
5170 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR
) {
5171 VkPhysicalDevicePipelineBinaryFeaturesKHR
* props
= (VkPhysicalDevicePipelineBinaryFeaturesKHR
*)structure
;
5172 DumpVkPhysicalDevicePipelineBinaryFeaturesKHR(p
, "VkPhysicalDevicePipelineBinaryFeaturesKHR", *props
);
5175 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES
) {
5176 VkPhysicalDevicePipelineCreationCacheControlFeatures
* props
= (VkPhysicalDevicePipelineCreationCacheControlFeatures
*)structure
;
5177 DumpVkPhysicalDevicePipelineCreationCacheControlFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDevicePipelineCreationCacheControlFeatures":"VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT", *props
);
5180 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR
) {
5181 VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
* props
= (VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
*)structure
;
5182 DumpVkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(p
, "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR", *props
);
5185 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
) {
5186 VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
* props
= (VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT
*)structure
;
5187 DumpVkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT(p
, "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT", *props
);
5190 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT
) {
5191 VkPhysicalDevicePipelinePropertiesFeaturesEXT
* props
= (VkPhysicalDevicePipelinePropertiesFeaturesEXT
*)structure
;
5192 DumpVkPhysicalDevicePipelinePropertiesFeaturesEXT(p
, "VkPhysicalDevicePipelinePropertiesFeaturesEXT", *props
);
5195 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT
) {
5196 VkPhysicalDevicePipelineProtectedAccessFeaturesEXT
* props
= (VkPhysicalDevicePipelineProtectedAccessFeaturesEXT
*)structure
;
5197 DumpVkPhysicalDevicePipelineProtectedAccessFeaturesEXT(p
, "VkPhysicalDevicePipelineProtectedAccessFeaturesEXT", *props
);
5200 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT
) {
5201 VkPhysicalDevicePipelineRobustnessFeaturesEXT
* props
= (VkPhysicalDevicePipelineRobustnessFeaturesEXT
*)structure
;
5202 DumpVkPhysicalDevicePipelineRobustnessFeaturesEXT(p
, "VkPhysicalDevicePipelineRobustnessFeaturesEXT", *props
);
5205 #ifdef VK_ENABLE_BETA_EXTENSIONS
5206 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR
&& p
.Type() != OutputType::json
) {
5207 VkPhysicalDevicePortabilitySubsetFeaturesKHR
* props
= (VkPhysicalDevicePortabilitySubsetFeaturesKHR
*)structure
;
5208 DumpVkPhysicalDevicePortabilitySubsetFeaturesKHR(p
, "VkPhysicalDevicePortabilitySubsetFeaturesKHR", *props
);
5211 #endif // VK_ENABLE_BETA_EXTENSIONS
5212 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR
) {
5213 VkPhysicalDevicePresentIdFeaturesKHR
* props
= (VkPhysicalDevicePresentIdFeaturesKHR
*)structure
;
5214 DumpVkPhysicalDevicePresentIdFeaturesKHR(p
, "VkPhysicalDevicePresentIdFeaturesKHR", *props
);
5217 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT
) {
5218 VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
* props
= (VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT
*)structure
;
5219 DumpVkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT(p
, "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT", *props
);
5222 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR
) {
5223 VkPhysicalDevicePresentWaitFeaturesKHR
* props
= (VkPhysicalDevicePresentWaitFeaturesKHR
*)structure
;
5224 DumpVkPhysicalDevicePresentWaitFeaturesKHR(p
, "VkPhysicalDevicePresentWaitFeaturesKHR", *props
);
5227 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT
) {
5228 VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
* props
= (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
*)structure
;
5229 DumpVkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT(p
, "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT", *props
);
5232 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT
) {
5233 VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
* props
= (VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
*)structure
;
5234 DumpVkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT(p
, "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT", *props
);
5237 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES
) {
5238 VkPhysicalDevicePrivateDataFeatures
* props
= (VkPhysicalDevicePrivateDataFeatures
*)structure
;
5239 DumpVkPhysicalDevicePrivateDataFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDevicePrivateDataFeatures":"VkPhysicalDevicePrivateDataFeaturesEXT", *props
);
5242 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES
) {
5243 VkPhysicalDeviceProtectedMemoryFeatures
* props
= (VkPhysicalDeviceProtectedMemoryFeatures
*)structure
;
5244 DumpVkPhysicalDeviceProtectedMemoryFeatures(p
, "VkPhysicalDeviceProtectedMemoryFeatures", *props
);
5247 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT
) {
5248 VkPhysicalDeviceProvokingVertexFeaturesEXT
* props
= (VkPhysicalDeviceProvokingVertexFeaturesEXT
*)structure
;
5249 DumpVkPhysicalDeviceProvokingVertexFeaturesEXT(p
, "VkPhysicalDeviceProvokingVertexFeaturesEXT", *props
);
5252 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT
) {
5253 VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
* props
= (VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
*)structure
;
5254 DumpVkPhysicalDeviceRGBA10X6FormatsFeaturesEXT(p
, "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT", *props
);
5257 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT
) {
5258 VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
* props
= (VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
*)structure
;
5259 DumpVkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT(p
, "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT", *props
);
5262 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
) {
5263 VkPhysicalDeviceRayQueryFeaturesKHR
* props
= (VkPhysicalDeviceRayQueryFeaturesKHR
*)structure
;
5264 DumpVkPhysicalDeviceRayQueryFeaturesKHR(p
, "VkPhysicalDeviceRayQueryFeaturesKHR", *props
);
5267 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR
) {
5268 VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
* props
= (VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
*)structure
;
5269 DumpVkPhysicalDeviceRayTracingMaintenance1FeaturesKHR(p
, "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR", *props
);
5272 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR
) {
5273 VkPhysicalDeviceRayTracingPipelineFeaturesKHR
* props
= (VkPhysicalDeviceRayTracingPipelineFeaturesKHR
*)structure
;
5274 DumpVkPhysicalDeviceRayTracingPipelineFeaturesKHR(p
, "VkPhysicalDeviceRayTracingPipelineFeaturesKHR", *props
);
5277 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR
) {
5278 VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR
* props
= (VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR
*)structure
;
5279 DumpVkPhysicalDeviceRayTracingPositionFetchFeaturesKHR(p
, "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR", *props
);
5282 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT
) {
5283 VkPhysicalDeviceRobustness2FeaturesEXT
* props
= (VkPhysicalDeviceRobustness2FeaturesEXT
*)structure
;
5284 DumpVkPhysicalDeviceRobustness2FeaturesEXT(p
, "VkPhysicalDeviceRobustness2FeaturesEXT", *props
);
5287 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES
) {
5288 VkPhysicalDeviceSamplerYcbcrConversionFeatures
* props
= (VkPhysicalDeviceSamplerYcbcrConversionFeatures
*)structure
;
5289 DumpVkPhysicalDeviceSamplerYcbcrConversionFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceSamplerYcbcrConversionFeatures":"VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR", *props
);
5292 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES
) {
5293 VkPhysicalDeviceScalarBlockLayoutFeatures
* props
= (VkPhysicalDeviceScalarBlockLayoutFeatures
*)structure
;
5294 DumpVkPhysicalDeviceScalarBlockLayoutFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceScalarBlockLayoutFeatures":"VkPhysicalDeviceScalarBlockLayoutFeaturesEXT", *props
);
5297 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES
) {
5298 VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
* props
= (VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
*)structure
;
5299 DumpVkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures":"VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR", *props
);
5302 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT
) {
5303 VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
* props
= (VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
*)structure
;
5304 DumpVkPhysicalDeviceShaderAtomicFloat2FeaturesEXT(p
, "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT", *props
);
5307 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
) {
5308 VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
* props
= (VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
*)structure
;
5309 DumpVkPhysicalDeviceShaderAtomicFloatFeaturesEXT(p
, "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT", *props
);
5312 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES
) {
5313 VkPhysicalDeviceShaderAtomicInt64Features
* props
= (VkPhysicalDeviceShaderAtomicInt64Features
*)structure
;
5314 DumpVkPhysicalDeviceShaderAtomicInt64Features(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceShaderAtomicInt64Features":"VkPhysicalDeviceShaderAtomicInt64FeaturesKHR", *props
);
5317 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
) {
5318 VkPhysicalDeviceShaderClockFeaturesKHR
* props
= (VkPhysicalDeviceShaderClockFeaturesKHR
*)structure
;
5319 DumpVkPhysicalDeviceShaderClockFeaturesKHR(p
, "VkPhysicalDeviceShaderClockFeaturesKHR", *props
);
5322 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES
) {
5323 VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
* props
= (VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
*)structure
;
5324 DumpVkPhysicalDeviceShaderDemoteToHelperInvocationFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures":"VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT", *props
);
5327 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES
) {
5328 VkPhysicalDeviceShaderDrawParametersFeatures
* props
= (VkPhysicalDeviceShaderDrawParametersFeatures
*)structure
;
5329 DumpVkPhysicalDeviceShaderDrawParametersFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceShaderDrawParametersFeatures":"VkPhysicalDeviceShaderDrawParameterFeatures", *props
);
5332 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR
) {
5333 VkPhysicalDeviceShaderExpectAssumeFeaturesKHR
* props
= (VkPhysicalDeviceShaderExpectAssumeFeaturesKHR
*)structure
;
5334 DumpVkPhysicalDeviceShaderExpectAssumeFeaturesKHR(p
, "VkPhysicalDeviceShaderExpectAssumeFeaturesKHR", *props
);
5337 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES
) {
5338 VkPhysicalDeviceShaderFloat16Int8Features
* props
= (VkPhysicalDeviceShaderFloat16Int8Features
*)structure
;
5339 DumpVkPhysicalDeviceShaderFloat16Int8Features(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceShaderFloat16Int8Features":"VkPhysicalDeviceFloat16Int8FeaturesKHR", *props
);
5342 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR
) {
5343 VkPhysicalDeviceShaderFloatControls2FeaturesKHR
* props
= (VkPhysicalDeviceShaderFloatControls2FeaturesKHR
*)structure
;
5344 DumpVkPhysicalDeviceShaderFloatControls2FeaturesKHR(p
, "VkPhysicalDeviceShaderFloatControls2FeaturesKHR", *props
);
5347 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT
) {
5348 VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
* props
= (VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
*)structure
;
5349 DumpVkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(p
, "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT", *props
);
5352 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES
) {
5353 VkPhysicalDeviceShaderIntegerDotProductFeatures
* props
= (VkPhysicalDeviceShaderIntegerDotProductFeatures
*)structure
;
5354 DumpVkPhysicalDeviceShaderIntegerDotProductFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceShaderIntegerDotProductFeatures":"VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR", *props
);
5357 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR
) {
5358 VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
* props
= (VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR
*)structure
;
5359 DumpVkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR(p
, "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR", *props
);
5362 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT
) {
5363 VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
* props
= (VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
*)structure
;
5364 DumpVkPhysicalDeviceShaderModuleIdentifierFeaturesEXT(p
, "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT", *props
);
5367 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT
) {
5368 VkPhysicalDeviceShaderObjectFeaturesEXT
* props
= (VkPhysicalDeviceShaderObjectFeaturesEXT
*)structure
;
5369 DumpVkPhysicalDeviceShaderObjectFeaturesEXT(p
, "VkPhysicalDeviceShaderObjectFeaturesEXT", *props
);
5372 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR
) {
5373 VkPhysicalDeviceShaderQuadControlFeaturesKHR
* props
= (VkPhysicalDeviceShaderQuadControlFeaturesKHR
*)structure
;
5374 DumpVkPhysicalDeviceShaderQuadControlFeaturesKHR(p
, "VkPhysicalDeviceShaderQuadControlFeaturesKHR", *props
);
5377 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR
) {
5378 VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
* props
= (VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
*)structure
;
5379 DumpVkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR(p
, "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR", *props
);
5382 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT
) {
5383 VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT
* props
= (VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT
*)structure
;
5384 DumpVkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT(p
, "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT", *props
);
5387 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES
) {
5388 VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
* props
= (VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
*)structure
;
5389 DumpVkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures":"VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR", *props
);
5392 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR
) {
5393 VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR
* props
= (VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR
*)structure
;
5394 DumpVkPhysicalDeviceShaderSubgroupRotateFeaturesKHR(p
, "VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR", *props
);
5397 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR
) {
5398 VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
* props
= (VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
*)structure
;
5399 DumpVkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR(p
, "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR", *props
);
5402 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES
) {
5403 VkPhysicalDeviceShaderTerminateInvocationFeatures
* props
= (VkPhysicalDeviceShaderTerminateInvocationFeatures
*)structure
;
5404 DumpVkPhysicalDeviceShaderTerminateInvocationFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceShaderTerminateInvocationFeatures":"VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR", *props
);
5407 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT
) {
5408 VkPhysicalDeviceShaderTileImageFeaturesEXT
* props
= (VkPhysicalDeviceShaderTileImageFeaturesEXT
*)structure
;
5409 DumpVkPhysicalDeviceShaderTileImageFeaturesEXT(p
, "VkPhysicalDeviceShaderTileImageFeaturesEXT", *props
);
5412 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES
) {
5413 VkPhysicalDeviceSubgroupSizeControlFeatures
* props
= (VkPhysicalDeviceSubgroupSizeControlFeatures
*)structure
;
5414 DumpVkPhysicalDeviceSubgroupSizeControlFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceSubgroupSizeControlFeatures":"VkPhysicalDeviceSubgroupSizeControlFeaturesEXT", *props
);
5417 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT
) {
5418 VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
* props
= (VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
*)structure
;
5419 DumpVkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT(p
, "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT", *props
);
5422 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT
) {
5423 VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT
* props
= (VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT
*)structure
;
5424 DumpVkPhysicalDeviceSwapchainMaintenance1FeaturesEXT(p
, "VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT", *props
);
5427 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES
) {
5428 VkPhysicalDeviceSynchronization2Features
* props
= (VkPhysicalDeviceSynchronization2Features
*)structure
;
5429 DumpVkPhysicalDeviceSynchronization2Features(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceSynchronization2Features":"VkPhysicalDeviceSynchronization2FeaturesKHR", *props
);
5432 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT
) {
5433 VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
* props
= (VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
*)structure
;
5434 DumpVkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(p
, "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT", *props
);
5437 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES
) {
5438 VkPhysicalDeviceTextureCompressionASTCHDRFeatures
* props
= (VkPhysicalDeviceTextureCompressionASTCHDRFeatures
*)structure
;
5439 DumpVkPhysicalDeviceTextureCompressionASTCHDRFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceTextureCompressionASTCHDRFeatures":"VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT", *props
);
5442 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES
) {
5443 VkPhysicalDeviceTimelineSemaphoreFeatures
* props
= (VkPhysicalDeviceTimelineSemaphoreFeatures
*)structure
;
5444 DumpVkPhysicalDeviceTimelineSemaphoreFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceTimelineSemaphoreFeatures":"VkPhysicalDeviceTimelineSemaphoreFeaturesKHR", *props
);
5447 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT
) {
5448 VkPhysicalDeviceTransformFeedbackFeaturesEXT
* props
= (VkPhysicalDeviceTransformFeedbackFeaturesEXT
*)structure
;
5449 DumpVkPhysicalDeviceTransformFeedbackFeaturesEXT(p
, "VkPhysicalDeviceTransformFeedbackFeaturesEXT", *props
);
5452 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES
) {
5453 VkPhysicalDeviceUniformBufferStandardLayoutFeatures
* props
= (VkPhysicalDeviceUniformBufferStandardLayoutFeatures
*)structure
;
5454 DumpVkPhysicalDeviceUniformBufferStandardLayoutFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceUniformBufferStandardLayoutFeatures":"VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR", *props
);
5457 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES
) {
5458 VkPhysicalDeviceVariablePointersFeatures
* props
= (VkPhysicalDeviceVariablePointersFeatures
*)structure
;
5459 DumpVkPhysicalDeviceVariablePointersFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_1
?"VkPhysicalDeviceVariablePointersFeatures":"VkPhysicalDeviceVariablePointersFeaturesKHR", *props
);
5462 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
) {
5463 VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR
* props
= (VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR
*)structure
;
5464 DumpVkPhysicalDeviceVertexAttributeDivisorFeaturesKHR(p
, "VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR", *props
);
5467 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT
) {
5468 VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
* props
= (VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
*)structure
;
5469 DumpVkPhysicalDeviceVertexInputDynamicStateFeaturesEXT(p
, "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT", *props
);
5472 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR
) {
5473 VkPhysicalDeviceVideoMaintenance1FeaturesKHR
* props
= (VkPhysicalDeviceVideoMaintenance1FeaturesKHR
*)structure
;
5474 DumpVkPhysicalDeviceVideoMaintenance1FeaturesKHR(p
, "VkPhysicalDeviceVideoMaintenance1FeaturesKHR", *props
);
5477 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES
) {
5478 VkPhysicalDeviceVulkan11Features
* props
= (VkPhysicalDeviceVulkan11Features
*)structure
;
5479 DumpVkPhysicalDeviceVulkan11Features(p
, "VkPhysicalDeviceVulkan11Features", *props
);
5482 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES
) {
5483 VkPhysicalDeviceVulkan12Features
* props
= (VkPhysicalDeviceVulkan12Features
*)structure
;
5484 DumpVkPhysicalDeviceVulkan12Features(p
, "VkPhysicalDeviceVulkan12Features", *props
);
5487 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES
) {
5488 VkPhysicalDeviceVulkan13Features
* props
= (VkPhysicalDeviceVulkan13Features
*)structure
;
5489 DumpVkPhysicalDeviceVulkan13Features(p
, "VkPhysicalDeviceVulkan13Features", *props
);
5492 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES
) {
5493 VkPhysicalDeviceVulkanMemoryModelFeatures
* props
= (VkPhysicalDeviceVulkanMemoryModelFeatures
*)structure
;
5494 DumpVkPhysicalDeviceVulkanMemoryModelFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_2
?"VkPhysicalDeviceVulkanMemoryModelFeatures":"VkPhysicalDeviceVulkanMemoryModelFeaturesKHR", *props
);
5497 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR
) {
5498 VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
* props
= (VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
*)structure
;
5499 DumpVkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR(p
, "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR", *props
);
5502 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT
) {
5503 VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
* props
= (VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
*)structure
;
5504 DumpVkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT(p
, "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT", *props
);
5507 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT
) {
5508 VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
* props
= (VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
*)structure
;
5509 DumpVkPhysicalDeviceYcbcrImageArraysFeaturesEXT(p
, "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT", *props
);
5512 if (structure
->sType
== VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES
) {
5513 VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
* props
= (VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
*)structure
;
5514 DumpVkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures":"VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR", *props
);
5517 place
= structure
->pNext
;
5521 bool prepare_phys_device_features2_twocall_chain_vectors(std::unique_ptr
<phys_device_features2_chain
>& chain
) {
5525 struct surface_capabilities2_chain
{
5526 surface_capabilities2_chain() = default;
5527 surface_capabilities2_chain(const surface_capabilities2_chain
&) = delete;
5528 surface_capabilities2_chain
& operator=(const surface_capabilities2_chain
&) = delete;
5529 surface_capabilities2_chain(surface_capabilities2_chain
&&) = delete;
5530 surface_capabilities2_chain
& operator=(surface_capabilities2_chain
&&) = delete;
5531 void* start_of_chain
= nullptr;
5532 VkSharedPresentSurfaceCapabilitiesKHR SharedPresentSurfaceCapabilitiesKHR
{};
5533 #ifdef VK_USE_PLATFORM_WIN32_KHR
5534 VkSurfaceCapabilitiesFullScreenExclusiveEXT SurfaceCapabilitiesFullScreenExclusiveEXT
{};
5535 #endif // VK_USE_PLATFORM_WIN32_KHR
5536 VkSurfaceProtectedCapabilitiesKHR SurfaceProtectedCapabilitiesKHR
{};
5537 void initialize_chain(AppInstance
&inst
, AppGpu
&gpu
) noexcept
{
5538 SharedPresentSurfaceCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
;
5539 #ifdef VK_USE_PLATFORM_WIN32_KHR
5540 SurfaceCapabilitiesFullScreenExclusiveEXT
.sType
= VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
;
5541 #endif // VK_USE_PLATFORM_WIN32_KHR
5542 SurfaceProtectedCapabilitiesKHR
.sType
= VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
;
5543 std::vector
<VkBaseOutStructure
*> chain_members
{};
5544 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME
))
5545 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&SharedPresentSurfaceCapabilitiesKHR
));
5546 #ifdef VK_USE_PLATFORM_WIN32_KHR
5547 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME
))
5548 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&SurfaceCapabilitiesFullScreenExclusiveEXT
));
5549 #endif // VK_USE_PLATFORM_WIN32_KHR
5550 if (inst
.CheckExtensionEnabled(VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME
))
5551 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&SurfaceProtectedCapabilitiesKHR
));
5553 if (!chain_members
.empty()) {
5554 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
5555 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
5557 start_of_chain
= chain_members
[0];
5561 void setup_surface_capabilities2_chain(VkSurfaceCapabilities2KHR
& start
, std::unique_ptr
<surface_capabilities2_chain
>& chain
, AppInstance
&inst
,AppGpu
&gpu
){
5562 chain
= std::unique_ptr
<surface_capabilities2_chain
>(new surface_capabilities2_chain());
5563 chain
->initialize_chain(inst
,gpu
);
5564 start
.pNext
= chain
->start_of_chain
;
5567 void chain_iterator_surface_capabilities2(Printer
&p
, AppInstance
&inst
, AppGpu
&gpu
, void * place
) {
5569 struct VkBaseOutStructure
*structure
= (struct VkBaseOutStructure
*)place
;
5571 if (structure
->sType
== VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR
) {
5572 VkSharedPresentSurfaceCapabilitiesKHR
* props
= (VkSharedPresentSurfaceCapabilitiesKHR
*)structure
;
5573 DumpVkSharedPresentSurfaceCapabilitiesKHR(p
, "VkSharedPresentSurfaceCapabilitiesKHR", *props
);
5576 #ifdef VK_USE_PLATFORM_WIN32_KHR
5577 if (structure
->sType
== VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
) {
5578 VkSurfaceCapabilitiesFullScreenExclusiveEXT
* props
= (VkSurfaceCapabilitiesFullScreenExclusiveEXT
*)structure
;
5579 DumpVkSurfaceCapabilitiesFullScreenExclusiveEXT(p
, "VkSurfaceCapabilitiesFullScreenExclusiveEXT", *props
);
5582 #endif // VK_USE_PLATFORM_WIN32_KHR
5583 if (structure
->sType
== VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR
) {
5584 VkSurfaceProtectedCapabilitiesKHR
* props
= (VkSurfaceProtectedCapabilitiesKHR
*)structure
;
5585 DumpVkSurfaceProtectedCapabilitiesKHR(p
, "VkSurfaceProtectedCapabilitiesKHR", *props
);
5588 place
= structure
->pNext
;
5592 bool prepare_surface_capabilities2_twocall_chain_vectors(std::unique_ptr
<surface_capabilities2_chain
>& chain
) {
5596 struct format_properties2_chain
{
5597 format_properties2_chain() = default;
5598 format_properties2_chain(const format_properties2_chain
&) = delete;
5599 format_properties2_chain
& operator=(const format_properties2_chain
&) = delete;
5600 format_properties2_chain(format_properties2_chain
&&) = delete;
5601 format_properties2_chain
& operator=(format_properties2_chain
&&) = delete;
5602 void* start_of_chain
= nullptr;
5603 VkFormatProperties3 FormatProperties3
{};
5604 VkSubpassResolvePerformanceQueryEXT SubpassResolvePerformanceQueryEXT
{};
5605 void initialize_chain(AppGpu
&gpu
) noexcept
{
5606 FormatProperties3
.sType
= VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
;
5607 SubpassResolvePerformanceQueryEXT
.sType
= VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
;
5608 std::vector
<VkBaseOutStructure
*> chain_members
{};
5609 if ((gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME
))
5610 && (gpu
.api_version
< VK_API_VERSION_1_3
))
5611 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&FormatProperties3
));
5612 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME
))
5613 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&SubpassResolvePerformanceQueryEXT
));
5615 if (!chain_members
.empty()) {
5616 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
5617 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
5619 start_of_chain
= chain_members
[0];
5623 void setup_format_properties2_chain(VkFormatProperties2
& start
, std::unique_ptr
<format_properties2_chain
>& chain
, AppGpu
&gpu
){
5624 chain
= std::unique_ptr
<format_properties2_chain
>(new format_properties2_chain());
5625 chain
->initialize_chain(gpu
);
5626 start
.pNext
= chain
->start_of_chain
;
5629 void chain_iterator_format_properties2(Printer
&p
, AppGpu
&gpu
, void * place
) {
5631 struct VkBaseOutStructure
*structure
= (struct VkBaseOutStructure
*)place
;
5633 if (structure
->sType
== VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3
) {
5634 VkFormatProperties3
* props
= (VkFormatProperties3
*)structure
;
5635 DumpVkFormatProperties3(p
, gpu
.api_version
>= VK_API_VERSION_1_3
?"VkFormatProperties3":"VkFormatProperties3KHR", *props
);
5638 if (structure
->sType
== VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT
) {
5639 VkSubpassResolvePerformanceQueryEXT
* props
= (VkSubpassResolvePerformanceQueryEXT
*)structure
;
5640 DumpVkSubpassResolvePerformanceQueryEXT(p
, "VkSubpassResolvePerformanceQueryEXT", *props
);
5643 place
= structure
->pNext
;
5647 bool prepare_format_properties2_twocall_chain_vectors(std::unique_ptr
<format_properties2_chain
>& chain
) {
5651 struct queue_properties2_chain
{
5652 queue_properties2_chain() = default;
5653 queue_properties2_chain(const queue_properties2_chain
&) = delete;
5654 queue_properties2_chain
& operator=(const queue_properties2_chain
&) = delete;
5655 queue_properties2_chain(queue_properties2_chain
&&) = delete;
5656 queue_properties2_chain
& operator=(queue_properties2_chain
&&) = delete;
5657 void* start_of_chain
= nullptr;
5658 VkQueueFamilyGlobalPriorityPropertiesKHR QueueFamilyGlobalPriorityPropertiesKHR
{};
5659 VkQueueFamilyQueryResultStatusPropertiesKHR QueueFamilyQueryResultStatusPropertiesKHR
{};
5660 VkQueueFamilyVideoPropertiesKHR QueueFamilyVideoPropertiesKHR
{};
5661 void initialize_chain(AppGpu
&gpu
) noexcept
{
5662 QueueFamilyGlobalPriorityPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
;
5663 QueueFamilyQueryResultStatusPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
;
5664 QueueFamilyVideoPropertiesKHR
.sType
= VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
;
5665 std::vector
<VkBaseOutStructure
*> chain_members
{};
5666 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME
)
5667 || gpu
.CheckPhysicalDeviceExtensionIncluded(VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME
))
5668 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&QueueFamilyGlobalPriorityPropertiesKHR
));
5669 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_QUEUE_EXTENSION_NAME
))
5670 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&QueueFamilyQueryResultStatusPropertiesKHR
));
5671 if (gpu
.CheckPhysicalDeviceExtensionIncluded(VK_KHR_VIDEO_QUEUE_EXTENSION_NAME
))
5672 chain_members
.push_back(reinterpret_cast<VkBaseOutStructure
*>(&QueueFamilyVideoPropertiesKHR
));
5674 if (!chain_members
.empty()) {
5675 for(size_t i
= 0; i
< chain_members
.size() - 1; i
++){
5676 chain_members
[i
]->pNext
= chain_members
[i
+ 1];
5678 start_of_chain
= chain_members
[0];
5682 void setup_queue_properties2_chain(VkQueueFamilyProperties2
& start
, std::unique_ptr
<queue_properties2_chain
>& chain
, AppGpu
&gpu
){
5683 chain
= std::unique_ptr
<queue_properties2_chain
>(new queue_properties2_chain());
5684 chain
->initialize_chain(gpu
);
5685 start
.pNext
= chain
->start_of_chain
;
5688 void chain_iterator_queue_properties2(Printer
&p
, AppGpu
&gpu
, void * place
) {
5690 struct VkBaseOutStructure
*structure
= (struct VkBaseOutStructure
*)place
;
5692 if (structure
->sType
== VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
) {
5693 VkQueueFamilyGlobalPriorityPropertiesKHR
* props
= (VkQueueFamilyGlobalPriorityPropertiesKHR
*)structure
;
5694 DumpVkQueueFamilyGlobalPriorityPropertiesKHR(p
, "VkQueueFamilyGlobalPriorityPropertiesKHR", *props
);
5697 if (structure
->sType
== VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR
) {
5698 VkQueueFamilyQueryResultStatusPropertiesKHR
* props
= (VkQueueFamilyQueryResultStatusPropertiesKHR
*)structure
;
5699 DumpVkQueueFamilyQueryResultStatusPropertiesKHR(p
, "VkQueueFamilyQueryResultStatusPropertiesKHR", *props
);
5702 if (structure
->sType
== VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR
) {
5703 VkQueueFamilyVideoPropertiesKHR
* props
= (VkQueueFamilyVideoPropertiesKHR
*)structure
;
5704 DumpVkQueueFamilyVideoPropertiesKHR(p
, "VkQueueFamilyVideoPropertiesKHR", *props
);
5707 place
= structure
->pNext
;
5711 bool prepare_queue_properties2_twocall_chain_vectors(std::unique_ptr
<queue_properties2_chain
>& chain
) {
5715 bool operator==(const VkExtent2D
& a
, const VkExtent2D b
);
5716 bool operator==(const VkSurfaceCapabilities2EXT
& a
, const VkSurfaceCapabilities2EXT b
);
5717 bool operator==(const VkSurfaceCapabilities2KHR
& a
, const VkSurfaceCapabilities2KHR b
);
5718 bool operator==(const VkSurfaceCapabilitiesKHR
& a
, const VkSurfaceCapabilitiesKHR b
);
5719 bool operator==(const VkSurfaceFormat2KHR
& a
, const VkSurfaceFormat2KHR b
);
5720 bool operator==(const VkSurfaceFormatKHR
& a
, const VkSurfaceFormatKHR b
);
5721 bool operator==(const VkExtent2D
& a
, const VkExtent2D b
) {
5722 return a
.width
== b
.width
5723 && a
.height
== b
.height
;
5725 bool operator==(const VkSurfaceCapabilities2EXT
& a
, const VkSurfaceCapabilities2EXT b
) {
5726 return a
.minImageCount
== b
.minImageCount
5727 && a
.maxImageCount
== b
.maxImageCount
5728 && a
.currentExtent
== b
.currentExtent
5729 && a
.minImageExtent
== b
.minImageExtent
5730 && a
.maxImageExtent
== b
.maxImageExtent
5731 && a
.maxImageArrayLayers
== b
.maxImageArrayLayers
5732 && a
.supportedTransforms
== b
.supportedTransforms
5733 && a
.currentTransform
== b
.currentTransform
5734 && a
.supportedCompositeAlpha
== b
.supportedCompositeAlpha
5735 && a
.supportedUsageFlags
== b
.supportedUsageFlags
5736 && a
.supportedSurfaceCounters
== b
.supportedSurfaceCounters
;
5738 bool operator==(const VkSurfaceCapabilities2KHR
& a
, const VkSurfaceCapabilities2KHR b
) {
5739 return a
.surfaceCapabilities
== b
.surfaceCapabilities
;
5741 bool operator==(const VkSurfaceCapabilitiesKHR
& a
, const VkSurfaceCapabilitiesKHR b
) {
5742 return a
.minImageCount
== b
.minImageCount
5743 && a
.maxImageCount
== b
.maxImageCount
5744 && a
.currentExtent
== b
.currentExtent
5745 && a
.minImageExtent
== b
.minImageExtent
5746 && a
.maxImageExtent
== b
.maxImageExtent
5747 && a
.maxImageArrayLayers
== b
.maxImageArrayLayers
5748 && a
.supportedTransforms
== b
.supportedTransforms
5749 && a
.currentTransform
== b
.currentTransform
5750 && a
.supportedCompositeAlpha
== b
.supportedCompositeAlpha
5751 && a
.supportedUsageFlags
== b
.supportedUsageFlags
;
5753 bool operator==(const VkSurfaceFormat2KHR
& a
, const VkSurfaceFormat2KHR b
) {
5754 return a
.surfaceFormat
== b
.surfaceFormat
;
5756 bool operator==(const VkSurfaceFormatKHR
& a
, const VkSurfaceFormatKHR b
) {
5757 return a
.format
== b
.format
5758 && a
.colorSpace
== b
.colorSpace
;
5760 std::ostream
&operator<<(std::ostream
&o
, VkExtent3D
&obj
) {
5761 return o
<< "(" << obj
.width
<< ',' << obj
.height
<< ',' << obj
.depth
<< ")";
5763 auto format_ranges
= std::array
{
5764 FormatRange
{0, nullptr, static_cast<VkFormat
>(0), static_cast<VkFormat
>(184)},
5765 FormatRange
{VK_API_VERSION_1_1
, nullptr, static_cast<VkFormat
>(1000156000), static_cast<VkFormat
>(1000156033)},
5766 FormatRange
{0, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME
, static_cast<VkFormat
>(1000156000), static_cast<VkFormat
>(1000156033)},
5767 FormatRange
{VK_API_VERSION_1_3
, nullptr, static_cast<VkFormat
>(1000330000), static_cast<VkFormat
>(1000330003)},
5768 FormatRange
{0, VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME
, static_cast<VkFormat
>(1000330000), static_cast<VkFormat
>(1000330003)},
5769 FormatRange
{VK_API_VERSION_1_3
, nullptr, static_cast<VkFormat
>(1000340000), static_cast<VkFormat
>(1000340001)},
5770 FormatRange
{0, VK_EXT_4444_FORMATS_EXTENSION_NAME
, static_cast<VkFormat
>(1000340000), static_cast<VkFormat
>(1000340001)},
5771 FormatRange
{VK_API_VERSION_1_3
, nullptr, static_cast<VkFormat
>(1000066000), static_cast<VkFormat
>(1000066013)},
5772 FormatRange
{0, VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME
, static_cast<VkFormat
>(1000066000), static_cast<VkFormat
>(1000066013)},
5773 FormatRange
{0, VK_IMG_FORMAT_PVRTC_EXTENSION_NAME
, static_cast<VkFormat
>(1000054000), static_cast<VkFormat
>(1000054007)},
5774 FormatRange
{0, VK_NV_OPTICAL_FLOW_EXTENSION_NAME
, static_cast<VkFormat
>(1000464000), static_cast<VkFormat
>(1000464000)},
5775 FormatRange
{0, VK_KHR_MAINTENANCE_5_EXTENSION_NAME
, static_cast<VkFormat
>(1000470000), static_cast<VkFormat
>(1000470001)},