1 use std::fmt; 2 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 3 #[repr(transparent)] 4 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageLayout.html>"] 5 pub struct ImageLayout(pub(crate) i32); 6 impl ImageLayout { 7 #[inline] from_raw(x: i32) -> Self8 pub const fn from_raw(x: i32) -> Self { 9 Self(x) 10 } 11 #[inline] as_raw(self) -> i3212 pub const fn as_raw(self) -> i32 { 13 self.0 14 } 15 } 16 impl ImageLayout { 17 #[doc = "Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)"] 18 pub const UNDEFINED: Self = Self(0); 19 #[doc = "General layout when image can be used for any kind of access"] 20 pub const GENERAL: Self = Self(1); 21 #[doc = "Optimal layout when image is only used for color attachment read/write"] 22 pub const COLOR_ATTACHMENT_OPTIMAL: Self = Self(2); 23 #[doc = "Optimal layout when image is only used for depth/stencil attachment read/write"] 24 pub const DEPTH_STENCIL_ATTACHMENT_OPTIMAL: Self = Self(3); 25 #[doc = "Optimal layout when image is used for read only depth/stencil attachment and shader access"] 26 pub const DEPTH_STENCIL_READ_ONLY_OPTIMAL: Self = Self(4); 27 #[doc = "Optimal layout when image is used for read only shader access"] 28 pub const SHADER_READ_ONLY_OPTIMAL: Self = Self(5); 29 #[doc = "Optimal layout when image is used only as source of transfer operations"] 30 pub const TRANSFER_SRC_OPTIMAL: Self = Self(6); 31 #[doc = "Optimal layout when image is used only as destination of transfer operations"] 32 pub const TRANSFER_DST_OPTIMAL: Self = Self(7); 33 #[doc = "Initial layout used when the data is populated by the CPU"] 34 pub const PREINITIALIZED: Self = Self(8); 35 } 36 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 37 #[repr(transparent)] 38 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentLoadOp.html>"] 39 pub struct AttachmentLoadOp(pub(crate) i32); 40 impl AttachmentLoadOp { 41 #[inline] from_raw(x: i32) -> Self42 pub const fn from_raw(x: i32) -> Self { 43 Self(x) 44 } 45 #[inline] as_raw(self) -> i3246 pub const fn as_raw(self) -> i32 { 47 self.0 48 } 49 } 50 impl AttachmentLoadOp { 51 pub const LOAD: Self = Self(0); 52 pub const CLEAR: Self = Self(1); 53 pub const DONT_CARE: Self = Self(2); 54 } 55 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 56 #[repr(transparent)] 57 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAttachmentStoreOp.html>"] 58 pub struct AttachmentStoreOp(pub(crate) i32); 59 impl AttachmentStoreOp { 60 #[inline] from_raw(x: i32) -> Self61 pub const fn from_raw(x: i32) -> Self { 62 Self(x) 63 } 64 #[inline] as_raw(self) -> i3265 pub const fn as_raw(self) -> i32 { 66 self.0 67 } 68 } 69 impl AttachmentStoreOp { 70 pub const STORE: Self = Self(0); 71 pub const DONT_CARE: Self = Self(1); 72 } 73 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 74 #[repr(transparent)] 75 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageType.html>"] 76 pub struct ImageType(pub(crate) i32); 77 impl ImageType { 78 #[inline] from_raw(x: i32) -> Self79 pub const fn from_raw(x: i32) -> Self { 80 Self(x) 81 } 82 #[inline] as_raw(self) -> i3283 pub const fn as_raw(self) -> i32 { 84 self.0 85 } 86 } 87 impl ImageType { 88 pub const TYPE_1D: Self = Self(0); 89 pub const TYPE_2D: Self = Self(1); 90 pub const TYPE_3D: Self = Self(2); 91 } 92 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 93 #[repr(transparent)] 94 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageTiling.html>"] 95 pub struct ImageTiling(pub(crate) i32); 96 impl ImageTiling { 97 #[inline] from_raw(x: i32) -> Self98 pub const fn from_raw(x: i32) -> Self { 99 Self(x) 100 } 101 #[inline] as_raw(self) -> i32102 pub const fn as_raw(self) -> i32 { 103 self.0 104 } 105 } 106 impl ImageTiling { 107 pub const OPTIMAL: Self = Self(0); 108 pub const LINEAR: Self = Self(1); 109 } 110 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 111 #[repr(transparent)] 112 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkImageViewType.html>"] 113 pub struct ImageViewType(pub(crate) i32); 114 impl ImageViewType { 115 #[inline] from_raw(x: i32) -> Self116 pub const fn from_raw(x: i32) -> Self { 117 Self(x) 118 } 119 #[inline] as_raw(self) -> i32120 pub const fn as_raw(self) -> i32 { 121 self.0 122 } 123 } 124 impl ImageViewType { 125 pub const TYPE_1D: Self = Self(0); 126 pub const TYPE_2D: Self = Self(1); 127 pub const TYPE_3D: Self = Self(2); 128 pub const CUBE: Self = Self(3); 129 pub const TYPE_1D_ARRAY: Self = Self(4); 130 pub const TYPE_2D_ARRAY: Self = Self(5); 131 pub const CUBE_ARRAY: Self = Self(6); 132 } 133 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 134 #[repr(transparent)] 135 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCommandBufferLevel.html>"] 136 pub struct CommandBufferLevel(pub(crate) i32); 137 impl CommandBufferLevel { 138 #[inline] from_raw(x: i32) -> Self139 pub const fn from_raw(x: i32) -> Self { 140 Self(x) 141 } 142 #[inline] as_raw(self) -> i32143 pub const fn as_raw(self) -> i32 { 144 self.0 145 } 146 } 147 impl CommandBufferLevel { 148 pub const PRIMARY: Self = Self(0); 149 pub const SECONDARY: Self = Self(1); 150 } 151 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 152 #[repr(transparent)] 153 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkComponentSwizzle.html>"] 154 pub struct ComponentSwizzle(pub(crate) i32); 155 impl ComponentSwizzle { 156 #[inline] from_raw(x: i32) -> Self157 pub const fn from_raw(x: i32) -> Self { 158 Self(x) 159 } 160 #[inline] as_raw(self) -> i32161 pub const fn as_raw(self) -> i32 { 162 self.0 163 } 164 } 165 impl ComponentSwizzle { 166 pub const IDENTITY: Self = Self(0); 167 pub const ZERO: Self = Self(1); 168 pub const ONE: Self = Self(2); 169 pub const R: Self = Self(3); 170 pub const G: Self = Self(4); 171 pub const B: Self = Self(5); 172 pub const A: Self = Self(6); 173 } 174 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 175 #[repr(transparent)] 176 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorType.html>"] 177 pub struct DescriptorType(pub(crate) i32); 178 impl DescriptorType { 179 #[inline] from_raw(x: i32) -> Self180 pub const fn from_raw(x: i32) -> Self { 181 Self(x) 182 } 183 #[inline] as_raw(self) -> i32184 pub const fn as_raw(self) -> i32 { 185 self.0 186 } 187 } 188 impl DescriptorType { 189 pub const SAMPLER: Self = Self(0); 190 pub const COMBINED_IMAGE_SAMPLER: Self = Self(1); 191 pub const SAMPLED_IMAGE: Self = Self(2); 192 pub const STORAGE_IMAGE: Self = Self(3); 193 pub const UNIFORM_TEXEL_BUFFER: Self = Self(4); 194 pub const STORAGE_TEXEL_BUFFER: Self = Self(5); 195 pub const UNIFORM_BUFFER: Self = Self(6); 196 pub const STORAGE_BUFFER: Self = Self(7); 197 pub const UNIFORM_BUFFER_DYNAMIC: Self = Self(8); 198 pub const STORAGE_BUFFER_DYNAMIC: Self = Self(9); 199 pub const INPUT_ATTACHMENT: Self = Self(10); 200 } 201 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 202 #[repr(transparent)] 203 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryType.html>"] 204 pub struct QueryType(pub(crate) i32); 205 impl QueryType { 206 #[inline] from_raw(x: i32) -> Self207 pub const fn from_raw(x: i32) -> Self { 208 Self(x) 209 } 210 #[inline] as_raw(self) -> i32211 pub const fn as_raw(self) -> i32 { 212 self.0 213 } 214 } 215 impl QueryType { 216 pub const OCCLUSION: Self = Self(0); 217 #[doc = "Optional"] 218 pub const PIPELINE_STATISTICS: Self = Self(1); 219 pub const TIMESTAMP: Self = Self(2); 220 } 221 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 222 #[repr(transparent)] 223 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBorderColor.html>"] 224 pub struct BorderColor(pub(crate) i32); 225 impl BorderColor { 226 #[inline] from_raw(x: i32) -> Self227 pub const fn from_raw(x: i32) -> Self { 228 Self(x) 229 } 230 #[inline] as_raw(self) -> i32231 pub const fn as_raw(self) -> i32 { 232 self.0 233 } 234 } 235 impl BorderColor { 236 pub const FLOAT_TRANSPARENT_BLACK: Self = Self(0); 237 pub const INT_TRANSPARENT_BLACK: Self = Self(1); 238 pub const FLOAT_OPAQUE_BLACK: Self = Self(2); 239 pub const INT_OPAQUE_BLACK: Self = Self(3); 240 pub const FLOAT_OPAQUE_WHITE: Self = Self(4); 241 pub const INT_OPAQUE_WHITE: Self = Self(5); 242 } 243 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 244 #[repr(transparent)] 245 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineBindPoint.html>"] 246 pub struct PipelineBindPoint(pub(crate) i32); 247 impl PipelineBindPoint { 248 #[inline] from_raw(x: i32) -> Self249 pub const fn from_raw(x: i32) -> Self { 250 Self(x) 251 } 252 #[inline] as_raw(self) -> i32253 pub const fn as_raw(self) -> i32 { 254 self.0 255 } 256 } 257 impl PipelineBindPoint { 258 pub const GRAPHICS: Self = Self(0); 259 pub const COMPUTE: Self = Self(1); 260 } 261 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 262 #[repr(transparent)] 263 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineCacheHeaderVersion.html>"] 264 pub struct PipelineCacheHeaderVersion(pub(crate) i32); 265 impl PipelineCacheHeaderVersion { 266 #[inline] from_raw(x: i32) -> Self267 pub const fn from_raw(x: i32) -> Self { 268 Self(x) 269 } 270 #[inline] as_raw(self) -> i32271 pub const fn as_raw(self) -> i32 { 272 self.0 273 } 274 } 275 impl PipelineCacheHeaderVersion { 276 pub const ONE: Self = Self(1); 277 } 278 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 279 #[repr(transparent)] 280 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPrimitiveTopology.html>"] 281 pub struct PrimitiveTopology(pub(crate) i32); 282 impl PrimitiveTopology { 283 #[inline] from_raw(x: i32) -> Self284 pub const fn from_raw(x: i32) -> Self { 285 Self(x) 286 } 287 #[inline] as_raw(self) -> i32288 pub const fn as_raw(self) -> i32 { 289 self.0 290 } 291 } 292 impl PrimitiveTopology { 293 pub const POINT_LIST: Self = Self(0); 294 pub const LINE_LIST: Self = Self(1); 295 pub const LINE_STRIP: Self = Self(2); 296 pub const TRIANGLE_LIST: Self = Self(3); 297 pub const TRIANGLE_STRIP: Self = Self(4); 298 pub const TRIANGLE_FAN: Self = Self(5); 299 pub const LINE_LIST_WITH_ADJACENCY: Self = Self(6); 300 pub const LINE_STRIP_WITH_ADJACENCY: Self = Self(7); 301 pub const TRIANGLE_LIST_WITH_ADJACENCY: Self = Self(8); 302 pub const TRIANGLE_STRIP_WITH_ADJACENCY: Self = Self(9); 303 pub const PATCH_LIST: Self = Self(10); 304 } 305 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 306 #[repr(transparent)] 307 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSharingMode.html>"] 308 pub struct SharingMode(pub(crate) i32); 309 impl SharingMode { 310 #[inline] from_raw(x: i32) -> Self311 pub const fn from_raw(x: i32) -> Self { 312 Self(x) 313 } 314 #[inline] as_raw(self) -> i32315 pub const fn as_raw(self) -> i32 { 316 self.0 317 } 318 } 319 impl SharingMode { 320 pub const EXCLUSIVE: Self = Self(0); 321 pub const CONCURRENT: Self = Self(1); 322 } 323 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 324 #[repr(transparent)] 325 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkIndexType.html>"] 326 pub struct IndexType(pub(crate) i32); 327 impl IndexType { 328 #[inline] from_raw(x: i32) -> Self329 pub const fn from_raw(x: i32) -> Self { 330 Self(x) 331 } 332 #[inline] as_raw(self) -> i32333 pub const fn as_raw(self) -> i32 { 334 self.0 335 } 336 } 337 impl IndexType { 338 pub const UINT16: Self = Self(0); 339 pub const UINT32: Self = Self(1); 340 } 341 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 342 #[repr(transparent)] 343 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFilter.html>"] 344 pub struct Filter(pub(crate) i32); 345 impl Filter { 346 #[inline] from_raw(x: i32) -> Self347 pub const fn from_raw(x: i32) -> Self { 348 Self(x) 349 } 350 #[inline] as_raw(self) -> i32351 pub const fn as_raw(self) -> i32 { 352 self.0 353 } 354 } 355 impl Filter { 356 pub const NEAREST: Self = Self(0); 357 pub const LINEAR: Self = Self(1); 358 } 359 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 360 #[repr(transparent)] 361 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerMipmapMode.html>"] 362 pub struct SamplerMipmapMode(pub(crate) i32); 363 impl SamplerMipmapMode { 364 #[inline] from_raw(x: i32) -> Self365 pub const fn from_raw(x: i32) -> Self { 366 Self(x) 367 } 368 #[inline] as_raw(self) -> i32369 pub const fn as_raw(self) -> i32 { 370 self.0 371 } 372 } 373 impl SamplerMipmapMode { 374 #[doc = "Choose nearest mip level"] 375 pub const NEAREST: Self = Self(0); 376 #[doc = "Linear filter between mip levels"] 377 pub const LINEAR: Self = Self(1); 378 } 379 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 380 #[repr(transparent)] 381 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerAddressMode.html>"] 382 pub struct SamplerAddressMode(pub(crate) i32); 383 impl SamplerAddressMode { 384 #[inline] from_raw(x: i32) -> Self385 pub const fn from_raw(x: i32) -> Self { 386 Self(x) 387 } 388 #[inline] as_raw(self) -> i32389 pub const fn as_raw(self) -> i32 { 390 self.0 391 } 392 } 393 impl SamplerAddressMode { 394 pub const REPEAT: Self = Self(0); 395 pub const MIRRORED_REPEAT: Self = Self(1); 396 pub const CLAMP_TO_EDGE: Self = Self(2); 397 pub const CLAMP_TO_BORDER: Self = Self(3); 398 } 399 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 400 #[repr(transparent)] 401 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCompareOp.html>"] 402 pub struct CompareOp(pub(crate) i32); 403 impl CompareOp { 404 #[inline] from_raw(x: i32) -> Self405 pub const fn from_raw(x: i32) -> Self { 406 Self(x) 407 } 408 #[inline] as_raw(self) -> i32409 pub const fn as_raw(self) -> i32 { 410 self.0 411 } 412 } 413 impl CompareOp { 414 pub const NEVER: Self = Self(0); 415 pub const LESS: Self = Self(1); 416 pub const EQUAL: Self = Self(2); 417 pub const LESS_OR_EQUAL: Self = Self(3); 418 pub const GREATER: Self = Self(4); 419 pub const NOT_EQUAL: Self = Self(5); 420 pub const GREATER_OR_EQUAL: Self = Self(6); 421 pub const ALWAYS: Self = Self(7); 422 } 423 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 424 #[repr(transparent)] 425 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPolygonMode.html>"] 426 pub struct PolygonMode(pub(crate) i32); 427 impl PolygonMode { 428 #[inline] from_raw(x: i32) -> Self429 pub const fn from_raw(x: i32) -> Self { 430 Self(x) 431 } 432 #[inline] as_raw(self) -> i32433 pub const fn as_raw(self) -> i32 { 434 self.0 435 } 436 } 437 impl PolygonMode { 438 pub const FILL: Self = Self(0); 439 pub const LINE: Self = Self(1); 440 pub const POINT: Self = Self(2); 441 } 442 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 443 #[repr(transparent)] 444 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFrontFace.html>"] 445 pub struct FrontFace(pub(crate) i32); 446 impl FrontFace { 447 #[inline] from_raw(x: i32) -> Self448 pub const fn from_raw(x: i32) -> Self { 449 Self(x) 450 } 451 #[inline] as_raw(self) -> i32452 pub const fn as_raw(self) -> i32 { 453 self.0 454 } 455 } 456 impl FrontFace { 457 pub const COUNTER_CLOCKWISE: Self = Self(0); 458 pub const CLOCKWISE: Self = Self(1); 459 } 460 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 461 #[repr(transparent)] 462 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBlendFactor.html>"] 463 pub struct BlendFactor(pub(crate) i32); 464 impl BlendFactor { 465 #[inline] from_raw(x: i32) -> Self466 pub const fn from_raw(x: i32) -> Self { 467 Self(x) 468 } 469 #[inline] as_raw(self) -> i32470 pub const fn as_raw(self) -> i32 { 471 self.0 472 } 473 } 474 impl BlendFactor { 475 pub const ZERO: Self = Self(0); 476 pub const ONE: Self = Self(1); 477 pub const SRC_COLOR: Self = Self(2); 478 pub const ONE_MINUS_SRC_COLOR: Self = Self(3); 479 pub const DST_COLOR: Self = Self(4); 480 pub const ONE_MINUS_DST_COLOR: Self = Self(5); 481 pub const SRC_ALPHA: Self = Self(6); 482 pub const ONE_MINUS_SRC_ALPHA: Self = Self(7); 483 pub const DST_ALPHA: Self = Self(8); 484 pub const ONE_MINUS_DST_ALPHA: Self = Self(9); 485 pub const CONSTANT_COLOR: Self = Self(10); 486 pub const ONE_MINUS_CONSTANT_COLOR: Self = Self(11); 487 pub const CONSTANT_ALPHA: Self = Self(12); 488 pub const ONE_MINUS_CONSTANT_ALPHA: Self = Self(13); 489 pub const SRC_ALPHA_SATURATE: Self = Self(14); 490 pub const SRC1_COLOR: Self = Self(15); 491 pub const ONE_MINUS_SRC1_COLOR: Self = Self(16); 492 pub const SRC1_ALPHA: Self = Self(17); 493 pub const ONE_MINUS_SRC1_ALPHA: Self = Self(18); 494 } 495 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 496 #[repr(transparent)] 497 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBlendOp.html>"] 498 pub struct BlendOp(pub(crate) i32); 499 impl BlendOp { 500 #[inline] from_raw(x: i32) -> Self501 pub const fn from_raw(x: i32) -> Self { 502 Self(x) 503 } 504 #[inline] as_raw(self) -> i32505 pub const fn as_raw(self) -> i32 { 506 self.0 507 } 508 } 509 impl BlendOp { 510 pub const ADD: Self = Self(0); 511 pub const SUBTRACT: Self = Self(1); 512 pub const REVERSE_SUBTRACT: Self = Self(2); 513 pub const MIN: Self = Self(3); 514 pub const MAX: Self = Self(4); 515 } 516 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 517 #[repr(transparent)] 518 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkStencilOp.html>"] 519 pub struct StencilOp(pub(crate) i32); 520 impl StencilOp { 521 #[inline] from_raw(x: i32) -> Self522 pub const fn from_raw(x: i32) -> Self { 523 Self(x) 524 } 525 #[inline] as_raw(self) -> i32526 pub const fn as_raw(self) -> i32 { 527 self.0 528 } 529 } 530 impl StencilOp { 531 pub const KEEP: Self = Self(0); 532 pub const ZERO: Self = Self(1); 533 pub const REPLACE: Self = Self(2); 534 pub const INCREMENT_AND_CLAMP: Self = Self(3); 535 pub const DECREMENT_AND_CLAMP: Self = Self(4); 536 pub const INVERT: Self = Self(5); 537 pub const INCREMENT_AND_WRAP: Self = Self(6); 538 pub const DECREMENT_AND_WRAP: Self = Self(7); 539 } 540 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 541 #[repr(transparent)] 542 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkLogicOp.html>"] 543 pub struct LogicOp(pub(crate) i32); 544 impl LogicOp { 545 #[inline] from_raw(x: i32) -> Self546 pub const fn from_raw(x: i32) -> Self { 547 Self(x) 548 } 549 #[inline] as_raw(self) -> i32550 pub const fn as_raw(self) -> i32 { 551 self.0 552 } 553 } 554 impl LogicOp { 555 pub const CLEAR: Self = Self(0); 556 pub const AND: Self = Self(1); 557 pub const AND_REVERSE: Self = Self(2); 558 pub const COPY: Self = Self(3); 559 pub const AND_INVERTED: Self = Self(4); 560 pub const NO_OP: Self = Self(5); 561 pub const XOR: Self = Self(6); 562 pub const OR: Self = Self(7); 563 pub const NOR: Self = Self(8); 564 pub const EQUIVALENT: Self = Self(9); 565 pub const INVERT: Self = Self(10); 566 pub const OR_REVERSE: Self = Self(11); 567 pub const COPY_INVERTED: Self = Self(12); 568 pub const OR_INVERTED: Self = Self(13); 569 pub const NAND: Self = Self(14); 570 pub const SET: Self = Self(15); 571 } 572 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 573 #[repr(transparent)] 574 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkInternalAllocationType.html>"] 575 pub struct InternalAllocationType(pub(crate) i32); 576 impl InternalAllocationType { 577 #[inline] from_raw(x: i32) -> Self578 pub const fn from_raw(x: i32) -> Self { 579 Self(x) 580 } 581 #[inline] as_raw(self) -> i32582 pub const fn as_raw(self) -> i32 { 583 self.0 584 } 585 } 586 impl InternalAllocationType { 587 pub const EXECUTABLE: Self = Self(0); 588 } 589 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 590 #[repr(transparent)] 591 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSystemAllocationScope.html>"] 592 pub struct SystemAllocationScope(pub(crate) i32); 593 impl SystemAllocationScope { 594 #[inline] from_raw(x: i32) -> Self595 pub const fn from_raw(x: i32) -> Self { 596 Self(x) 597 } 598 #[inline] as_raw(self) -> i32599 pub const fn as_raw(self) -> i32 { 600 self.0 601 } 602 } 603 impl SystemAllocationScope { 604 pub const COMMAND: Self = Self(0); 605 pub const OBJECT: Self = Self(1); 606 pub const CACHE: Self = Self(2); 607 pub const DEVICE: Self = Self(3); 608 pub const INSTANCE: Self = Self(4); 609 } 610 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 611 #[repr(transparent)] 612 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceType.html>"] 613 pub struct PhysicalDeviceType(pub(crate) i32); 614 impl PhysicalDeviceType { 615 #[inline] from_raw(x: i32) -> Self616 pub const fn from_raw(x: i32) -> Self { 617 Self(x) 618 } 619 #[inline] as_raw(self) -> i32620 pub const fn as_raw(self) -> i32 { 621 self.0 622 } 623 } 624 impl PhysicalDeviceType { 625 pub const OTHER: Self = Self(0); 626 pub const INTEGRATED_GPU: Self = Self(1); 627 pub const DISCRETE_GPU: Self = Self(2); 628 pub const VIRTUAL_GPU: Self = Self(3); 629 pub const CPU: Self = Self(4); 630 } 631 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 632 #[repr(transparent)] 633 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVertexInputRate.html>"] 634 pub struct VertexInputRate(pub(crate) i32); 635 impl VertexInputRate { 636 #[inline] from_raw(x: i32) -> Self637 pub const fn from_raw(x: i32) -> Self { 638 Self(x) 639 } 640 #[inline] as_raw(self) -> i32641 pub const fn as_raw(self) -> i32 { 642 self.0 643 } 644 } 645 impl VertexInputRate { 646 pub const VERTEX: Self = Self(0); 647 pub const INSTANCE: Self = Self(1); 648 } 649 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 650 #[repr(transparent)] 651 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFormat.html>"] 652 pub struct Format(pub(crate) i32); 653 impl Format { 654 #[inline] from_raw(x: i32) -> Self655 pub const fn from_raw(x: i32) -> Self { 656 Self(x) 657 } 658 #[inline] as_raw(self) -> i32659 pub const fn as_raw(self) -> i32 { 660 self.0 661 } 662 } 663 impl Format { 664 pub const UNDEFINED: Self = Self(0); 665 pub const R4G4_UNORM_PACK8: Self = Self(1); 666 pub const R4G4B4A4_UNORM_PACK16: Self = Self(2); 667 pub const B4G4R4A4_UNORM_PACK16: Self = Self(3); 668 pub const R5G6B5_UNORM_PACK16: Self = Self(4); 669 pub const B5G6R5_UNORM_PACK16: Self = Self(5); 670 pub const R5G5B5A1_UNORM_PACK16: Self = Self(6); 671 pub const B5G5R5A1_UNORM_PACK16: Self = Self(7); 672 pub const A1R5G5B5_UNORM_PACK16: Self = Self(8); 673 pub const R8_UNORM: Self = Self(9); 674 pub const R8_SNORM: Self = Self(10); 675 pub const R8_USCALED: Self = Self(11); 676 pub const R8_SSCALED: Self = Self(12); 677 pub const R8_UINT: Self = Self(13); 678 pub const R8_SINT: Self = Self(14); 679 pub const R8_SRGB: Self = Self(15); 680 pub const R8G8_UNORM: Self = Self(16); 681 pub const R8G8_SNORM: Self = Self(17); 682 pub const R8G8_USCALED: Self = Self(18); 683 pub const R8G8_SSCALED: Self = Self(19); 684 pub const R8G8_UINT: Self = Self(20); 685 pub const R8G8_SINT: Self = Self(21); 686 pub const R8G8_SRGB: Self = Self(22); 687 pub const R8G8B8_UNORM: Self = Self(23); 688 pub const R8G8B8_SNORM: Self = Self(24); 689 pub const R8G8B8_USCALED: Self = Self(25); 690 pub const R8G8B8_SSCALED: Self = Self(26); 691 pub const R8G8B8_UINT: Self = Self(27); 692 pub const R8G8B8_SINT: Self = Self(28); 693 pub const R8G8B8_SRGB: Self = Self(29); 694 pub const B8G8R8_UNORM: Self = Self(30); 695 pub const B8G8R8_SNORM: Self = Self(31); 696 pub const B8G8R8_USCALED: Self = Self(32); 697 pub const B8G8R8_SSCALED: Self = Self(33); 698 pub const B8G8R8_UINT: Self = Self(34); 699 pub const B8G8R8_SINT: Self = Self(35); 700 pub const B8G8R8_SRGB: Self = Self(36); 701 pub const R8G8B8A8_UNORM: Self = Self(37); 702 pub const R8G8B8A8_SNORM: Self = Self(38); 703 pub const R8G8B8A8_USCALED: Self = Self(39); 704 pub const R8G8B8A8_SSCALED: Self = Self(40); 705 pub const R8G8B8A8_UINT: Self = Self(41); 706 pub const R8G8B8A8_SINT: Self = Self(42); 707 pub const R8G8B8A8_SRGB: Self = Self(43); 708 pub const B8G8R8A8_UNORM: Self = Self(44); 709 pub const B8G8R8A8_SNORM: Self = Self(45); 710 pub const B8G8R8A8_USCALED: Self = Self(46); 711 pub const B8G8R8A8_SSCALED: Self = Self(47); 712 pub const B8G8R8A8_UINT: Self = Self(48); 713 pub const B8G8R8A8_SINT: Self = Self(49); 714 pub const B8G8R8A8_SRGB: Self = Self(50); 715 pub const A8B8G8R8_UNORM_PACK32: Self = Self(51); 716 pub const A8B8G8R8_SNORM_PACK32: Self = Self(52); 717 pub const A8B8G8R8_USCALED_PACK32: Self = Self(53); 718 pub const A8B8G8R8_SSCALED_PACK32: Self = Self(54); 719 pub const A8B8G8R8_UINT_PACK32: Self = Self(55); 720 pub const A8B8G8R8_SINT_PACK32: Self = Self(56); 721 pub const A8B8G8R8_SRGB_PACK32: Self = Self(57); 722 pub const A2R10G10B10_UNORM_PACK32: Self = Self(58); 723 pub const A2R10G10B10_SNORM_PACK32: Self = Self(59); 724 pub const A2R10G10B10_USCALED_PACK32: Self = Self(60); 725 pub const A2R10G10B10_SSCALED_PACK32: Self = Self(61); 726 pub const A2R10G10B10_UINT_PACK32: Self = Self(62); 727 pub const A2R10G10B10_SINT_PACK32: Self = Self(63); 728 pub const A2B10G10R10_UNORM_PACK32: Self = Self(64); 729 pub const A2B10G10R10_SNORM_PACK32: Self = Self(65); 730 pub const A2B10G10R10_USCALED_PACK32: Self = Self(66); 731 pub const A2B10G10R10_SSCALED_PACK32: Self = Self(67); 732 pub const A2B10G10R10_UINT_PACK32: Self = Self(68); 733 pub const A2B10G10R10_SINT_PACK32: Self = Self(69); 734 pub const R16_UNORM: Self = Self(70); 735 pub const R16_SNORM: Self = Self(71); 736 pub const R16_USCALED: Self = Self(72); 737 pub const R16_SSCALED: Self = Self(73); 738 pub const R16_UINT: Self = Self(74); 739 pub const R16_SINT: Self = Self(75); 740 pub const R16_SFLOAT: Self = Self(76); 741 pub const R16G16_UNORM: Self = Self(77); 742 pub const R16G16_SNORM: Self = Self(78); 743 pub const R16G16_USCALED: Self = Self(79); 744 pub const R16G16_SSCALED: Self = Self(80); 745 pub const R16G16_UINT: Self = Self(81); 746 pub const R16G16_SINT: Self = Self(82); 747 pub const R16G16_SFLOAT: Self = Self(83); 748 pub const R16G16B16_UNORM: Self = Self(84); 749 pub const R16G16B16_SNORM: Self = Self(85); 750 pub const R16G16B16_USCALED: Self = Self(86); 751 pub const R16G16B16_SSCALED: Self = Self(87); 752 pub const R16G16B16_UINT: Self = Self(88); 753 pub const R16G16B16_SINT: Self = Self(89); 754 pub const R16G16B16_SFLOAT: Self = Self(90); 755 pub const R16G16B16A16_UNORM: Self = Self(91); 756 pub const R16G16B16A16_SNORM: Self = Self(92); 757 pub const R16G16B16A16_USCALED: Self = Self(93); 758 pub const R16G16B16A16_SSCALED: Self = Self(94); 759 pub const R16G16B16A16_UINT: Self = Self(95); 760 pub const R16G16B16A16_SINT: Self = Self(96); 761 pub const R16G16B16A16_SFLOAT: Self = Self(97); 762 pub const R32_UINT: Self = Self(98); 763 pub const R32_SINT: Self = Self(99); 764 pub const R32_SFLOAT: Self = Self(100); 765 pub const R32G32_UINT: Self = Self(101); 766 pub const R32G32_SINT: Self = Self(102); 767 pub const R32G32_SFLOAT: Self = Self(103); 768 pub const R32G32B32_UINT: Self = Self(104); 769 pub const R32G32B32_SINT: Self = Self(105); 770 pub const R32G32B32_SFLOAT: Self = Self(106); 771 pub const R32G32B32A32_UINT: Self = Self(107); 772 pub const R32G32B32A32_SINT: Self = Self(108); 773 pub const R32G32B32A32_SFLOAT: Self = Self(109); 774 pub const R64_UINT: Self = Self(110); 775 pub const R64_SINT: Self = Self(111); 776 pub const R64_SFLOAT: Self = Self(112); 777 pub const R64G64_UINT: Self = Self(113); 778 pub const R64G64_SINT: Self = Self(114); 779 pub const R64G64_SFLOAT: Self = Self(115); 780 pub const R64G64B64_UINT: Self = Self(116); 781 pub const R64G64B64_SINT: Self = Self(117); 782 pub const R64G64B64_SFLOAT: Self = Self(118); 783 pub const R64G64B64A64_UINT: Self = Self(119); 784 pub const R64G64B64A64_SINT: Self = Self(120); 785 pub const R64G64B64A64_SFLOAT: Self = Self(121); 786 pub const B10G11R11_UFLOAT_PACK32: Self = Self(122); 787 pub const E5B9G9R9_UFLOAT_PACK32: Self = Self(123); 788 pub const D16_UNORM: Self = Self(124); 789 pub const X8_D24_UNORM_PACK32: Self = Self(125); 790 pub const D32_SFLOAT: Self = Self(126); 791 pub const S8_UINT: Self = Self(127); 792 pub const D16_UNORM_S8_UINT: Self = Self(128); 793 pub const D24_UNORM_S8_UINT: Self = Self(129); 794 pub const D32_SFLOAT_S8_UINT: Self = Self(130); 795 pub const BC1_RGB_UNORM_BLOCK: Self = Self(131); 796 pub const BC1_RGB_SRGB_BLOCK: Self = Self(132); 797 pub const BC1_RGBA_UNORM_BLOCK: Self = Self(133); 798 pub const BC1_RGBA_SRGB_BLOCK: Self = Self(134); 799 pub const BC2_UNORM_BLOCK: Self = Self(135); 800 pub const BC2_SRGB_BLOCK: Self = Self(136); 801 pub const BC3_UNORM_BLOCK: Self = Self(137); 802 pub const BC3_SRGB_BLOCK: Self = Self(138); 803 pub const BC4_UNORM_BLOCK: Self = Self(139); 804 pub const BC4_SNORM_BLOCK: Self = Self(140); 805 pub const BC5_UNORM_BLOCK: Self = Self(141); 806 pub const BC5_SNORM_BLOCK: Self = Self(142); 807 pub const BC6H_UFLOAT_BLOCK: Self = Self(143); 808 pub const BC6H_SFLOAT_BLOCK: Self = Self(144); 809 pub const BC7_UNORM_BLOCK: Self = Self(145); 810 pub const BC7_SRGB_BLOCK: Self = Self(146); 811 pub const ETC2_R8G8B8_UNORM_BLOCK: Self = Self(147); 812 pub const ETC2_R8G8B8_SRGB_BLOCK: Self = Self(148); 813 pub const ETC2_R8G8B8A1_UNORM_BLOCK: Self = Self(149); 814 pub const ETC2_R8G8B8A1_SRGB_BLOCK: Self = Self(150); 815 pub const ETC2_R8G8B8A8_UNORM_BLOCK: Self = Self(151); 816 pub const ETC2_R8G8B8A8_SRGB_BLOCK: Self = Self(152); 817 pub const EAC_R11_UNORM_BLOCK: Self = Self(153); 818 pub const EAC_R11_SNORM_BLOCK: Self = Self(154); 819 pub const EAC_R11G11_UNORM_BLOCK: Self = Self(155); 820 pub const EAC_R11G11_SNORM_BLOCK: Self = Self(156); 821 pub const ASTC_4X4_UNORM_BLOCK: Self = Self(157); 822 pub const ASTC_4X4_SRGB_BLOCK: Self = Self(158); 823 pub const ASTC_5X4_UNORM_BLOCK: Self = Self(159); 824 pub const ASTC_5X4_SRGB_BLOCK: Self = Self(160); 825 pub const ASTC_5X5_UNORM_BLOCK: Self = Self(161); 826 pub const ASTC_5X5_SRGB_BLOCK: Self = Self(162); 827 pub const ASTC_6X5_UNORM_BLOCK: Self = Self(163); 828 pub const ASTC_6X5_SRGB_BLOCK: Self = Self(164); 829 pub const ASTC_6X6_UNORM_BLOCK: Self = Self(165); 830 pub const ASTC_6X6_SRGB_BLOCK: Self = Self(166); 831 pub const ASTC_8X5_UNORM_BLOCK: Self = Self(167); 832 pub const ASTC_8X5_SRGB_BLOCK: Self = Self(168); 833 pub const ASTC_8X6_UNORM_BLOCK: Self = Self(169); 834 pub const ASTC_8X6_SRGB_BLOCK: Self = Self(170); 835 pub const ASTC_8X8_UNORM_BLOCK: Self = Self(171); 836 pub const ASTC_8X8_SRGB_BLOCK: Self = Self(172); 837 pub const ASTC_10X5_UNORM_BLOCK: Self = Self(173); 838 pub const ASTC_10X5_SRGB_BLOCK: Self = Self(174); 839 pub const ASTC_10X6_UNORM_BLOCK: Self = Self(175); 840 pub const ASTC_10X6_SRGB_BLOCK: Self = Self(176); 841 pub const ASTC_10X8_UNORM_BLOCK: Self = Self(177); 842 pub const ASTC_10X8_SRGB_BLOCK: Self = Self(178); 843 pub const ASTC_10X10_UNORM_BLOCK: Self = Self(179); 844 pub const ASTC_10X10_SRGB_BLOCK: Self = Self(180); 845 pub const ASTC_12X10_UNORM_BLOCK: Self = Self(181); 846 pub const ASTC_12X10_SRGB_BLOCK: Self = Self(182); 847 pub const ASTC_12X12_UNORM_BLOCK: Self = Self(183); 848 pub const ASTC_12X12_SRGB_BLOCK: Self = Self(184); 849 } 850 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 851 #[repr(transparent)] 852 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkStructureType.html>"] 853 pub struct StructureType(pub(crate) i32); 854 impl StructureType { 855 #[inline] from_raw(x: i32) -> Self856 pub const fn from_raw(x: i32) -> Self { 857 Self(x) 858 } 859 #[inline] as_raw(self) -> i32860 pub const fn as_raw(self) -> i32 { 861 self.0 862 } 863 } 864 impl StructureType { 865 pub const APPLICATION_INFO: Self = Self(0); 866 pub const INSTANCE_CREATE_INFO: Self = Self(1); 867 pub const DEVICE_QUEUE_CREATE_INFO: Self = Self(2); 868 pub const DEVICE_CREATE_INFO: Self = Self(3); 869 pub const SUBMIT_INFO: Self = Self(4); 870 pub const MEMORY_ALLOCATE_INFO: Self = Self(5); 871 pub const MAPPED_MEMORY_RANGE: Self = Self(6); 872 pub const BIND_SPARSE_INFO: Self = Self(7); 873 pub const FENCE_CREATE_INFO: Self = Self(8); 874 pub const SEMAPHORE_CREATE_INFO: Self = Self(9); 875 pub const EVENT_CREATE_INFO: Self = Self(10); 876 pub const QUERY_POOL_CREATE_INFO: Self = Self(11); 877 pub const BUFFER_CREATE_INFO: Self = Self(12); 878 pub const BUFFER_VIEW_CREATE_INFO: Self = Self(13); 879 pub const IMAGE_CREATE_INFO: Self = Self(14); 880 pub const IMAGE_VIEW_CREATE_INFO: Self = Self(15); 881 pub const SHADER_MODULE_CREATE_INFO: Self = Self(16); 882 pub const PIPELINE_CACHE_CREATE_INFO: Self = Self(17); 883 pub const PIPELINE_SHADER_STAGE_CREATE_INFO: Self = Self(18); 884 pub const PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: Self = Self(19); 885 pub const PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: Self = Self(20); 886 pub const PIPELINE_TESSELLATION_STATE_CREATE_INFO: Self = Self(21); 887 pub const PIPELINE_VIEWPORT_STATE_CREATE_INFO: Self = Self(22); 888 pub const PIPELINE_RASTERIZATION_STATE_CREATE_INFO: Self = Self(23); 889 pub const PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: Self = Self(24); 890 pub const PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: Self = Self(25); 891 pub const PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: Self = Self(26); 892 pub const PIPELINE_DYNAMIC_STATE_CREATE_INFO: Self = Self(27); 893 pub const GRAPHICS_PIPELINE_CREATE_INFO: Self = Self(28); 894 pub const COMPUTE_PIPELINE_CREATE_INFO: Self = Self(29); 895 pub const PIPELINE_LAYOUT_CREATE_INFO: Self = Self(30); 896 pub const SAMPLER_CREATE_INFO: Self = Self(31); 897 pub const DESCRIPTOR_SET_LAYOUT_CREATE_INFO: Self = Self(32); 898 pub const DESCRIPTOR_POOL_CREATE_INFO: Self = Self(33); 899 pub const DESCRIPTOR_SET_ALLOCATE_INFO: Self = Self(34); 900 pub const WRITE_DESCRIPTOR_SET: Self = Self(35); 901 pub const COPY_DESCRIPTOR_SET: Self = Self(36); 902 pub const FRAMEBUFFER_CREATE_INFO: Self = Self(37); 903 pub const RENDER_PASS_CREATE_INFO: Self = Self(38); 904 pub const COMMAND_POOL_CREATE_INFO: Self = Self(39); 905 pub const COMMAND_BUFFER_ALLOCATE_INFO: Self = Self(40); 906 pub const COMMAND_BUFFER_INHERITANCE_INFO: Self = Self(41); 907 pub const COMMAND_BUFFER_BEGIN_INFO: Self = Self(42); 908 pub const RENDER_PASS_BEGIN_INFO: Self = Self(43); 909 pub const BUFFER_MEMORY_BARRIER: Self = Self(44); 910 pub const IMAGE_MEMORY_BARRIER: Self = Self(45); 911 pub const MEMORY_BARRIER: Self = Self(46); 912 #[doc = "Reserved for internal use by the loader, layers, and ICDs"] 913 pub const LOADER_INSTANCE_CREATE_INFO: Self = Self(47); 914 #[doc = "Reserved for internal use by the loader, layers, and ICDs"] 915 pub const LOADER_DEVICE_CREATE_INFO: Self = Self(48); 916 } 917 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 918 #[repr(transparent)] 919 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassContents.html>"] 920 pub struct SubpassContents(pub(crate) i32); 921 impl SubpassContents { 922 #[inline] from_raw(x: i32) -> Self923 pub const fn from_raw(x: i32) -> Self { 924 Self(x) 925 } 926 #[inline] as_raw(self) -> i32927 pub const fn as_raw(self) -> i32 { 928 self.0 929 } 930 } 931 impl SubpassContents { 932 pub const INLINE: Self = Self(0); 933 pub const SECONDARY_COMMAND_BUFFERS: Self = Self(1); 934 } 935 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 936 #[repr(transparent)] 937 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkResult.html>"] 938 #[must_use] 939 pub struct Result(pub(crate) i32); 940 impl Result { 941 #[inline] from_raw(x: i32) -> Self942 pub const fn from_raw(x: i32) -> Self { 943 Self(x) 944 } 945 #[inline] as_raw(self) -> i32946 pub const fn as_raw(self) -> i32 { 947 self.0 948 } 949 } 950 impl Result { 951 #[doc = "Command completed successfully"] 952 pub const SUCCESS: Self = Self(0); 953 #[doc = "A fence or query has not yet completed"] 954 pub const NOT_READY: Self = Self(1); 955 #[doc = "A wait operation has not completed in the specified time"] 956 pub const TIMEOUT: Self = Self(2); 957 #[doc = "An event is signaled"] 958 pub const EVENT_SET: Self = Self(3); 959 #[doc = "An event is unsignaled"] 960 pub const EVENT_RESET: Self = Self(4); 961 #[doc = "A return array was too small for the result"] 962 pub const INCOMPLETE: Self = Self(5); 963 #[doc = "A host memory allocation has failed"] 964 pub const ERROR_OUT_OF_HOST_MEMORY: Self = Self(-1); 965 #[doc = "A device memory allocation has failed"] 966 pub const ERROR_OUT_OF_DEVICE_MEMORY: Self = Self(-2); 967 #[doc = "Initialization of an object has failed"] 968 pub const ERROR_INITIALIZATION_FAILED: Self = Self(-3); 969 #[doc = "The logical device has been lost. See <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device>"] 970 pub const ERROR_DEVICE_LOST: Self = Self(-4); 971 #[doc = "Mapping of a memory object has failed"] 972 pub const ERROR_MEMORY_MAP_FAILED: Self = Self(-5); 973 #[doc = "Layer specified does not exist"] 974 pub const ERROR_LAYER_NOT_PRESENT: Self = Self(-6); 975 #[doc = "Extension specified does not exist"] 976 pub const ERROR_EXTENSION_NOT_PRESENT: Self = Self(-7); 977 #[doc = "Requested feature is not available on this device"] 978 pub const ERROR_FEATURE_NOT_PRESENT: Self = Self(-8); 979 #[doc = "Unable to find a Vulkan driver"] 980 pub const ERROR_INCOMPATIBLE_DRIVER: Self = Self(-9); 981 #[doc = "Too many objects of the type have already been created"] 982 pub const ERROR_TOO_MANY_OBJECTS: Self = Self(-10); 983 #[doc = "Requested format is not supported on this device"] 984 pub const ERROR_FORMAT_NOT_SUPPORTED: Self = Self(-11); 985 #[doc = "A requested pool allocation has failed due to fragmentation of the pool's memory"] 986 pub const ERROR_FRAGMENTED_POOL: Self = Self(-12); 987 #[doc = "An unknown error has occurred, due to an implementation or application bug"] 988 pub const ERROR_UNKNOWN: Self = Self(-13); 989 } 990 impl ::std::error::Error for Result {} 991 impl fmt::Display for Result { fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result992 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { 993 let name = match * self { Self :: SUCCESS => Some ("Command completed successfully") , Self :: NOT_READY => Some ("A fence or query has not yet completed") , Self :: TIMEOUT => Some ("A wait operation has not completed in the specified time") , Self :: EVENT_SET => Some ("An event is signaled") , Self :: EVENT_RESET => Some ("An event is unsignaled") , Self :: INCOMPLETE => Some ("A return array was too small for the result") , Self :: ERROR_OUT_OF_HOST_MEMORY => Some ("A host memory allocation has failed") , Self :: ERROR_OUT_OF_DEVICE_MEMORY => Some ("A device memory allocation has failed") , Self :: ERROR_INITIALIZATION_FAILED => Some ("Initialization of an object has failed") , Self :: ERROR_DEVICE_LOST => Some ("The logical device has been lost. See <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device>") , Self :: ERROR_MEMORY_MAP_FAILED => Some ("Mapping of a memory object has failed") , Self :: ERROR_LAYER_NOT_PRESENT => Some ("Layer specified does not exist") , Self :: ERROR_EXTENSION_NOT_PRESENT => Some ("Extension specified does not exist") , Self :: ERROR_FEATURE_NOT_PRESENT => Some ("Requested feature is not available on this device") , Self :: ERROR_INCOMPATIBLE_DRIVER => Some ("Unable to find a Vulkan driver") , Self :: ERROR_TOO_MANY_OBJECTS => Some ("Too many objects of the type have already been created") , Self :: ERROR_FORMAT_NOT_SUPPORTED => Some ("Requested format is not supported on this device") , Self :: ERROR_FRAGMENTED_POOL => Some ("A requested pool allocation has failed due to fragmentation of the pool's memory") , Self :: ERROR_UNKNOWN => Some ("An unknown error has occurred, due to an implementation or application bug") , _ => None , } ; 994 if let Some(x) = name { 995 fmt.write_str(x) 996 } else { 997 <Self as fmt::Debug>::fmt(self, fmt) 998 } 999 } 1000 } 1001 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1002 #[repr(transparent)] 1003 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDynamicState.html>"] 1004 pub struct DynamicState(pub(crate) i32); 1005 impl DynamicState { 1006 #[inline] from_raw(x: i32) -> Self1007 pub const fn from_raw(x: i32) -> Self { 1008 Self(x) 1009 } 1010 #[inline] as_raw(self) -> i321011 pub const fn as_raw(self) -> i32 { 1012 self.0 1013 } 1014 } 1015 impl DynamicState { 1016 pub const VIEWPORT: Self = Self(0); 1017 pub const SCISSOR: Self = Self(1); 1018 pub const LINE_WIDTH: Self = Self(2); 1019 pub const DEPTH_BIAS: Self = Self(3); 1020 pub const BLEND_CONSTANTS: Self = Self(4); 1021 pub const DEPTH_BOUNDS: Self = Self(5); 1022 pub const STENCIL_COMPARE_MASK: Self = Self(6); 1023 pub const STENCIL_WRITE_MASK: Self = Self(7); 1024 pub const STENCIL_REFERENCE: Self = Self(8); 1025 } 1026 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1027 #[repr(transparent)] 1028 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDescriptorUpdateTemplateType.html>"] 1029 pub struct DescriptorUpdateTemplateType(pub(crate) i32); 1030 impl DescriptorUpdateTemplateType { 1031 #[inline] from_raw(x: i32) -> Self1032 pub const fn from_raw(x: i32) -> Self { 1033 Self(x) 1034 } 1035 #[inline] as_raw(self) -> i321036 pub const fn as_raw(self) -> i32 { 1037 self.0 1038 } 1039 } 1040 impl DescriptorUpdateTemplateType { 1041 #[doc = "Create descriptor update template for descriptor set updates"] 1042 pub const DESCRIPTOR_SET: Self = Self(0); 1043 } 1044 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1045 #[repr(transparent)] 1046 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkObjectType.html>"] 1047 pub struct ObjectType(pub(crate) i32); 1048 impl ObjectType { 1049 #[inline] from_raw(x: i32) -> Self1050 pub const fn from_raw(x: i32) -> Self { 1051 Self(x) 1052 } 1053 #[inline] as_raw(self) -> i321054 pub const fn as_raw(self) -> i32 { 1055 self.0 1056 } 1057 } 1058 impl ObjectType { 1059 pub const UNKNOWN: Self = Self(0); 1060 pub const INSTANCE: Self = Self(1); 1061 pub const PHYSICAL_DEVICE: Self = Self(2); 1062 pub const DEVICE: Self = Self(3); 1063 pub const QUEUE: Self = Self(4); 1064 pub const SEMAPHORE: Self = Self(5); 1065 pub const COMMAND_BUFFER: Self = Self(6); 1066 pub const FENCE: Self = Self(7); 1067 pub const DEVICE_MEMORY: Self = Self(8); 1068 pub const BUFFER: Self = Self(9); 1069 pub const IMAGE: Self = Self(10); 1070 pub const EVENT: Self = Self(11); 1071 pub const QUERY_POOL: Self = Self(12); 1072 pub const BUFFER_VIEW: Self = Self(13); 1073 pub const IMAGE_VIEW: Self = Self(14); 1074 pub const SHADER_MODULE: Self = Self(15); 1075 pub const PIPELINE_CACHE: Self = Self(16); 1076 pub const PIPELINE_LAYOUT: Self = Self(17); 1077 pub const RENDER_PASS: Self = Self(18); 1078 pub const PIPELINE: Self = Self(19); 1079 pub const DESCRIPTOR_SET_LAYOUT: Self = Self(20); 1080 pub const SAMPLER: Self = Self(21); 1081 pub const DESCRIPTOR_POOL: Self = Self(22); 1082 pub const DESCRIPTOR_SET: Self = Self(23); 1083 pub const FRAMEBUFFER: Self = Self(24); 1084 pub const COMMAND_POOL: Self = Self(25); 1085 } 1086 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1087 #[repr(transparent)] 1088 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingInvocationReorderModeNV.html>"] 1089 pub struct RayTracingInvocationReorderModeNV(pub(crate) i32); 1090 impl RayTracingInvocationReorderModeNV { 1091 #[inline] from_raw(x: i32) -> Self1092 pub const fn from_raw(x: i32) -> Self { 1093 Self(x) 1094 } 1095 #[inline] as_raw(self) -> i321096 pub const fn as_raw(self) -> i32 { 1097 self.0 1098 } 1099 } 1100 impl RayTracingInvocationReorderModeNV { 1101 pub const NONE: Self = Self(0); 1102 pub const REORDER: Self = Self(1); 1103 } 1104 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1105 #[repr(transparent)] 1106 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDirectDriverLoadingModeLUNARG.html>"] 1107 pub struct DirectDriverLoadingModeLUNARG(pub(crate) i32); 1108 impl DirectDriverLoadingModeLUNARG { 1109 #[inline] from_raw(x: i32) -> Self1110 pub const fn from_raw(x: i32) -> Self { 1111 Self(x) 1112 } 1113 #[inline] as_raw(self) -> i321114 pub const fn as_raw(self) -> i32 { 1115 self.0 1116 } 1117 } 1118 impl DirectDriverLoadingModeLUNARG { 1119 pub const EXCLUSIVE: Self = Self(0); 1120 pub const INCLUSIVE: Self = Self(1); 1121 } 1122 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1123 #[repr(transparent)] 1124 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSemaphoreType.html>"] 1125 pub struct SemaphoreType(pub(crate) i32); 1126 impl SemaphoreType { 1127 #[inline] from_raw(x: i32) -> Self1128 pub const fn from_raw(x: i32) -> Self { 1129 Self(x) 1130 } 1131 #[inline] as_raw(self) -> i321132 pub const fn as_raw(self) -> i32 { 1133 self.0 1134 } 1135 } 1136 impl SemaphoreType { 1137 pub const BINARY: Self = Self(0); 1138 pub const TIMELINE: Self = Self(1); 1139 } 1140 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1141 #[repr(transparent)] 1142 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPresentModeKHR.html>"] 1143 pub struct PresentModeKHR(pub(crate) i32); 1144 impl PresentModeKHR { 1145 #[inline] from_raw(x: i32) -> Self1146 pub const fn from_raw(x: i32) -> Self { 1147 Self(x) 1148 } 1149 #[inline] as_raw(self) -> i321150 pub const fn as_raw(self) -> i32 { 1151 self.0 1152 } 1153 } 1154 impl PresentModeKHR { 1155 pub const IMMEDIATE: Self = Self(0); 1156 pub const MAILBOX: Self = Self(1); 1157 pub const FIFO: Self = Self(2); 1158 pub const FIFO_RELAXED: Self = Self(3); 1159 } 1160 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1161 #[repr(transparent)] 1162 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkColorSpaceKHR.html>"] 1163 pub struct ColorSpaceKHR(pub(crate) i32); 1164 impl ColorSpaceKHR { 1165 #[inline] from_raw(x: i32) -> Self1166 pub const fn from_raw(x: i32) -> Self { 1167 Self(x) 1168 } 1169 #[inline] as_raw(self) -> i321170 pub const fn as_raw(self) -> i32 { 1171 self.0 1172 } 1173 } 1174 impl ColorSpaceKHR { 1175 pub const SRGB_NONLINEAR: Self = Self(0); 1176 } 1177 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1178 #[repr(transparent)] 1179 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTimeDomainEXT.html>"] 1180 pub struct TimeDomainEXT(pub(crate) i32); 1181 impl TimeDomainEXT { 1182 #[inline] from_raw(x: i32) -> Self1183 pub const fn from_raw(x: i32) -> Self { 1184 Self(x) 1185 } 1186 #[inline] as_raw(self) -> i321187 pub const fn as_raw(self) -> i32 { 1188 self.0 1189 } 1190 } 1191 impl TimeDomainEXT { 1192 pub const DEVICE: Self = Self(0); 1193 pub const CLOCK_MONOTONIC: Self = Self(1); 1194 pub const CLOCK_MONOTONIC_RAW: Self = Self(2); 1195 pub const QUERY_PERFORMANCE_COUNTER: Self = Self(3); 1196 } 1197 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1198 #[repr(transparent)] 1199 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDebugReportObjectTypeEXT.html>"] 1200 pub struct DebugReportObjectTypeEXT(pub(crate) i32); 1201 impl DebugReportObjectTypeEXT { 1202 #[inline] from_raw(x: i32) -> Self1203 pub const fn from_raw(x: i32) -> Self { 1204 Self(x) 1205 } 1206 #[inline] as_raw(self) -> i321207 pub const fn as_raw(self) -> i32 { 1208 self.0 1209 } 1210 } 1211 impl DebugReportObjectTypeEXT { 1212 pub const UNKNOWN: Self = Self(0); 1213 pub const INSTANCE: Self = Self(1); 1214 pub const PHYSICAL_DEVICE: Self = Self(2); 1215 pub const DEVICE: Self = Self(3); 1216 pub const QUEUE: Self = Self(4); 1217 pub const SEMAPHORE: Self = Self(5); 1218 pub const COMMAND_BUFFER: Self = Self(6); 1219 pub const FENCE: Self = Self(7); 1220 pub const DEVICE_MEMORY: Self = Self(8); 1221 pub const BUFFER: Self = Self(9); 1222 pub const IMAGE: Self = Self(10); 1223 pub const EVENT: Self = Self(11); 1224 pub const QUERY_POOL: Self = Self(12); 1225 pub const BUFFER_VIEW: Self = Self(13); 1226 pub const IMAGE_VIEW: Self = Self(14); 1227 pub const SHADER_MODULE: Self = Self(15); 1228 pub const PIPELINE_CACHE: Self = Self(16); 1229 pub const PIPELINE_LAYOUT: Self = Self(17); 1230 pub const RENDER_PASS: Self = Self(18); 1231 pub const PIPELINE: Self = Self(19); 1232 pub const DESCRIPTOR_SET_LAYOUT: Self = Self(20); 1233 pub const SAMPLER: Self = Self(21); 1234 pub const DESCRIPTOR_POOL: Self = Self(22); 1235 pub const DESCRIPTOR_SET: Self = Self(23); 1236 pub const FRAMEBUFFER: Self = Self(24); 1237 pub const COMMAND_POOL: Self = Self(25); 1238 pub const SURFACE_KHR: Self = Self(26); 1239 pub const SWAPCHAIN_KHR: Self = Self(27); 1240 pub const DEBUG_REPORT_CALLBACK_EXT: Self = Self(28); 1241 pub const DISPLAY_KHR: Self = Self(29); 1242 pub const DISPLAY_MODE_KHR: Self = Self(30); 1243 pub const VALIDATION_CACHE_EXT: Self = Self(33); 1244 } 1245 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1246 #[repr(transparent)] 1247 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceMemoryReportEventTypeEXT.html>"] 1248 pub struct DeviceMemoryReportEventTypeEXT(pub(crate) i32); 1249 impl DeviceMemoryReportEventTypeEXT { 1250 #[inline] from_raw(x: i32) -> Self1251 pub const fn from_raw(x: i32) -> Self { 1252 Self(x) 1253 } 1254 #[inline] as_raw(self) -> i321255 pub const fn as_raw(self) -> i32 { 1256 self.0 1257 } 1258 } 1259 impl DeviceMemoryReportEventTypeEXT { 1260 pub const ALLOCATE: Self = Self(0); 1261 pub const FREE: Self = Self(1); 1262 pub const IMPORT: Self = Self(2); 1263 pub const UNIMPORT: Self = Self(3); 1264 pub const ALLOCATION_FAILED: Self = Self(4); 1265 } 1266 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1267 #[repr(transparent)] 1268 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRasterizationOrderAMD.html>"] 1269 pub struct RasterizationOrderAMD(pub(crate) i32); 1270 impl RasterizationOrderAMD { 1271 #[inline] from_raw(x: i32) -> Self1272 pub const fn from_raw(x: i32) -> Self { 1273 Self(x) 1274 } 1275 #[inline] as_raw(self) -> i321276 pub const fn as_raw(self) -> i32 { 1277 self.0 1278 } 1279 } 1280 impl RasterizationOrderAMD { 1281 pub const STRICT: Self = Self(0); 1282 pub const RELAXED: Self = Self(1); 1283 } 1284 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1285 #[repr(transparent)] 1286 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationCheckEXT.html>"] 1287 pub struct ValidationCheckEXT(pub(crate) i32); 1288 impl ValidationCheckEXT { 1289 #[inline] from_raw(x: i32) -> Self1290 pub const fn from_raw(x: i32) -> Self { 1291 Self(x) 1292 } 1293 #[inline] as_raw(self) -> i321294 pub const fn as_raw(self) -> i32 { 1295 self.0 1296 } 1297 } 1298 impl ValidationCheckEXT { 1299 pub const ALL: Self = Self(0); 1300 pub const SHADERS: Self = Self(1); 1301 } 1302 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1303 #[repr(transparent)] 1304 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationFeatureEnableEXT.html>"] 1305 pub struct ValidationFeatureEnableEXT(pub(crate) i32); 1306 impl ValidationFeatureEnableEXT { 1307 #[inline] from_raw(x: i32) -> Self1308 pub const fn from_raw(x: i32) -> Self { 1309 Self(x) 1310 } 1311 #[inline] as_raw(self) -> i321312 pub const fn as_raw(self) -> i32 { 1313 self.0 1314 } 1315 } 1316 impl ValidationFeatureEnableEXT { 1317 pub const GPU_ASSISTED: Self = Self(0); 1318 pub const GPU_ASSISTED_RESERVE_BINDING_SLOT: Self = Self(1); 1319 pub const BEST_PRACTICES: Self = Self(2); 1320 pub const DEBUG_PRINTF: Self = Self(3); 1321 pub const SYNCHRONIZATION_VALIDATION: Self = Self(4); 1322 } 1323 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1324 #[repr(transparent)] 1325 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationFeatureDisableEXT.html>"] 1326 pub struct ValidationFeatureDisableEXT(pub(crate) i32); 1327 impl ValidationFeatureDisableEXT { 1328 #[inline] from_raw(x: i32) -> Self1329 pub const fn from_raw(x: i32) -> Self { 1330 Self(x) 1331 } 1332 #[inline] as_raw(self) -> i321333 pub const fn as_raw(self) -> i32 { 1334 self.0 1335 } 1336 } 1337 impl ValidationFeatureDisableEXT { 1338 pub const ALL: Self = Self(0); 1339 pub const SHADERS: Self = Self(1); 1340 pub const THREAD_SAFETY: Self = Self(2); 1341 pub const API_PARAMETERS: Self = Self(3); 1342 pub const OBJECT_LIFETIMES: Self = Self(4); 1343 pub const CORE_CHECKS: Self = Self(5); 1344 pub const UNIQUE_HANDLES: Self = Self(6); 1345 pub const SHADER_VALIDATION_CACHE: Self = Self(7); 1346 } 1347 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1348 #[repr(transparent)] 1349 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkIndirectCommandsTokenTypeNV.html>"] 1350 pub struct IndirectCommandsTokenTypeNV(pub(crate) i32); 1351 impl IndirectCommandsTokenTypeNV { 1352 #[inline] from_raw(x: i32) -> Self1353 pub const fn from_raw(x: i32) -> Self { 1354 Self(x) 1355 } 1356 #[inline] as_raw(self) -> i321357 pub const fn as_raw(self) -> i32 { 1358 self.0 1359 } 1360 } 1361 impl IndirectCommandsTokenTypeNV { 1362 pub const SHADER_GROUP: Self = Self(0); 1363 pub const STATE_FLAGS: Self = Self(1); 1364 pub const INDEX_BUFFER: Self = Self(2); 1365 pub const VERTEX_BUFFER: Self = Self(3); 1366 pub const PUSH_CONSTANT: Self = Self(4); 1367 pub const DRAW_INDEXED: Self = Self(5); 1368 pub const DRAW: Self = Self(6); 1369 pub const DRAW_TASKS: Self = Self(7); 1370 } 1371 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1372 #[repr(transparent)] 1373 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayPowerStateEXT.html>"] 1374 pub struct DisplayPowerStateEXT(pub(crate) i32); 1375 impl DisplayPowerStateEXT { 1376 #[inline] from_raw(x: i32) -> Self1377 pub const fn from_raw(x: i32) -> Self { 1378 Self(x) 1379 } 1380 #[inline] as_raw(self) -> i321381 pub const fn as_raw(self) -> i32 { 1382 self.0 1383 } 1384 } 1385 impl DisplayPowerStateEXT { 1386 pub const OFF: Self = Self(0); 1387 pub const SUSPEND: Self = Self(1); 1388 pub const ON: Self = Self(2); 1389 } 1390 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1391 #[repr(transparent)] 1392 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceEventTypeEXT.html>"] 1393 pub struct DeviceEventTypeEXT(pub(crate) i32); 1394 impl DeviceEventTypeEXT { 1395 #[inline] from_raw(x: i32) -> Self1396 pub const fn from_raw(x: i32) -> Self { 1397 Self(x) 1398 } 1399 #[inline] as_raw(self) -> i321400 pub const fn as_raw(self) -> i32 { 1401 self.0 1402 } 1403 } 1404 impl DeviceEventTypeEXT { 1405 pub const DISPLAY_HOTPLUG: Self = Self(0); 1406 } 1407 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1408 #[repr(transparent)] 1409 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplayEventTypeEXT.html>"] 1410 pub struct DisplayEventTypeEXT(pub(crate) i32); 1411 impl DisplayEventTypeEXT { 1412 #[inline] from_raw(x: i32) -> Self1413 pub const fn from_raw(x: i32) -> Self { 1414 Self(x) 1415 } 1416 #[inline] as_raw(self) -> i321417 pub const fn as_raw(self) -> i32 { 1418 self.0 1419 } 1420 } 1421 impl DisplayEventTypeEXT { 1422 pub const FIRST_PIXEL_OUT: Self = Self(0); 1423 } 1424 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1425 #[repr(transparent)] 1426 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkViewportCoordinateSwizzleNV.html>"] 1427 pub struct ViewportCoordinateSwizzleNV(pub(crate) i32); 1428 impl ViewportCoordinateSwizzleNV { 1429 #[inline] from_raw(x: i32) -> Self1430 pub const fn from_raw(x: i32) -> Self { 1431 Self(x) 1432 } 1433 #[inline] as_raw(self) -> i321434 pub const fn as_raw(self) -> i32 { 1435 self.0 1436 } 1437 } 1438 impl ViewportCoordinateSwizzleNV { 1439 pub const POSITIVE_X: Self = Self(0); 1440 pub const NEGATIVE_X: Self = Self(1); 1441 pub const POSITIVE_Y: Self = Self(2); 1442 pub const NEGATIVE_Y: Self = Self(3); 1443 pub const POSITIVE_Z: Self = Self(4); 1444 pub const NEGATIVE_Z: Self = Self(5); 1445 pub const POSITIVE_W: Self = Self(6); 1446 pub const NEGATIVE_W: Self = Self(7); 1447 } 1448 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1449 #[repr(transparent)] 1450 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDiscardRectangleModeEXT.html>"] 1451 pub struct DiscardRectangleModeEXT(pub(crate) i32); 1452 impl DiscardRectangleModeEXT { 1453 #[inline] from_raw(x: i32) -> Self1454 pub const fn from_raw(x: i32) -> Self { 1455 Self(x) 1456 } 1457 #[inline] as_raw(self) -> i321458 pub const fn as_raw(self) -> i32 { 1459 self.0 1460 } 1461 } 1462 impl DiscardRectangleModeEXT { 1463 pub const INCLUSIVE: Self = Self(0); 1464 pub const EXCLUSIVE: Self = Self(1); 1465 } 1466 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1467 #[repr(transparent)] 1468 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPointClippingBehavior.html>"] 1469 pub struct PointClippingBehavior(pub(crate) i32); 1470 impl PointClippingBehavior { 1471 #[inline] from_raw(x: i32) -> Self1472 pub const fn from_raw(x: i32) -> Self { 1473 Self(x) 1474 } 1475 #[inline] as_raw(self) -> i321476 pub const fn as_raw(self) -> i32 { 1477 self.0 1478 } 1479 } 1480 impl PointClippingBehavior { 1481 pub const ALL_CLIP_PLANES: Self = Self(0); 1482 pub const USER_CLIP_PLANES_ONLY: Self = Self(1); 1483 } 1484 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1485 #[repr(transparent)] 1486 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerReductionMode.html>"] 1487 pub struct SamplerReductionMode(pub(crate) i32); 1488 impl SamplerReductionMode { 1489 #[inline] from_raw(x: i32) -> Self1490 pub const fn from_raw(x: i32) -> Self { 1491 Self(x) 1492 } 1493 #[inline] as_raw(self) -> i321494 pub const fn as_raw(self) -> i32 { 1495 self.0 1496 } 1497 } 1498 impl SamplerReductionMode { 1499 pub const WEIGHTED_AVERAGE: Self = Self(0); 1500 pub const MIN: Self = Self(1); 1501 pub const MAX: Self = Self(2); 1502 } 1503 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1504 #[repr(transparent)] 1505 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkTessellationDomainOrigin.html>"] 1506 pub struct TessellationDomainOrigin(pub(crate) i32); 1507 impl TessellationDomainOrigin { 1508 #[inline] from_raw(x: i32) -> Self1509 pub const fn from_raw(x: i32) -> Self { 1510 Self(x) 1511 } 1512 #[inline] as_raw(self) -> i321513 pub const fn as_raw(self) -> i32 { 1514 self.0 1515 } 1516 } 1517 impl TessellationDomainOrigin { 1518 pub const UPPER_LEFT: Self = Self(0); 1519 pub const LOWER_LEFT: Self = Self(1); 1520 } 1521 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1522 #[repr(transparent)] 1523 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrModelConversion.html>"] 1524 pub struct SamplerYcbcrModelConversion(pub(crate) i32); 1525 impl SamplerYcbcrModelConversion { 1526 #[inline] from_raw(x: i32) -> Self1527 pub const fn from_raw(x: i32) -> Self { 1528 Self(x) 1529 } 1530 #[inline] as_raw(self) -> i321531 pub const fn as_raw(self) -> i32 { 1532 self.0 1533 } 1534 } 1535 impl SamplerYcbcrModelConversion { 1536 pub const RGB_IDENTITY: Self = Self(0); 1537 #[doc = "just range expansion"] 1538 pub const YCBCR_IDENTITY: Self = Self(1); 1539 #[doc = "aka HD YUV"] 1540 pub const YCBCR_709: Self = Self(2); 1541 #[doc = "aka SD YUV"] 1542 pub const YCBCR_601: Self = Self(3); 1543 #[doc = "aka UHD YUV"] 1544 pub const YCBCR_2020: Self = Self(4); 1545 } 1546 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1547 #[repr(transparent)] 1548 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSamplerYcbcrRange.html>"] 1549 pub struct SamplerYcbcrRange(pub(crate) i32); 1550 impl SamplerYcbcrRange { 1551 #[inline] from_raw(x: i32) -> Self1552 pub const fn from_raw(x: i32) -> Self { 1553 Self(x) 1554 } 1555 #[inline] as_raw(self) -> i321556 pub const fn as_raw(self) -> i32 { 1557 self.0 1558 } 1559 } 1560 impl SamplerYcbcrRange { 1561 #[doc = "Luma 0..1 maps to 0..255, chroma -0.5..0.5 to 1..255 (clamped)"] 1562 pub const ITU_FULL: Self = Self(0); 1563 #[doc = "Luma 0..1 maps to 16..235, chroma -0.5..0.5 to 16..240"] 1564 pub const ITU_NARROW: Self = Self(1); 1565 } 1566 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1567 #[repr(transparent)] 1568 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkChromaLocation.html>"] 1569 pub struct ChromaLocation(pub(crate) i32); 1570 impl ChromaLocation { 1571 #[inline] from_raw(x: i32) -> Self1572 pub const fn from_raw(x: i32) -> Self { 1573 Self(x) 1574 } 1575 #[inline] as_raw(self) -> i321576 pub const fn as_raw(self) -> i32 { 1577 self.0 1578 } 1579 } 1580 impl ChromaLocation { 1581 pub const COSITED_EVEN: Self = Self(0); 1582 pub const MIDPOINT: Self = Self(1); 1583 } 1584 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1585 #[repr(transparent)] 1586 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBlendOverlapEXT.html>"] 1587 pub struct BlendOverlapEXT(pub(crate) i32); 1588 impl BlendOverlapEXT { 1589 #[inline] from_raw(x: i32) -> Self1590 pub const fn from_raw(x: i32) -> Self { 1591 Self(x) 1592 } 1593 #[inline] as_raw(self) -> i321594 pub const fn as_raw(self) -> i32 { 1595 self.0 1596 } 1597 } 1598 impl BlendOverlapEXT { 1599 pub const UNCORRELATED: Self = Self(0); 1600 pub const DISJOINT: Self = Self(1); 1601 pub const CONJOINT: Self = Self(2); 1602 } 1603 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1604 #[repr(transparent)] 1605 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCoverageModulationModeNV.html>"] 1606 pub struct CoverageModulationModeNV(pub(crate) i32); 1607 impl CoverageModulationModeNV { 1608 #[inline] from_raw(x: i32) -> Self1609 pub const fn from_raw(x: i32) -> Self { 1610 Self(x) 1611 } 1612 #[inline] as_raw(self) -> i321613 pub const fn as_raw(self) -> i32 { 1614 self.0 1615 } 1616 } 1617 impl CoverageModulationModeNV { 1618 pub const NONE: Self = Self(0); 1619 pub const RGB: Self = Self(1); 1620 pub const ALPHA: Self = Self(2); 1621 pub const RGBA: Self = Self(3); 1622 } 1623 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1624 #[repr(transparent)] 1625 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCoverageReductionModeNV.html>"] 1626 pub struct CoverageReductionModeNV(pub(crate) i32); 1627 impl CoverageReductionModeNV { 1628 #[inline] from_raw(x: i32) -> Self1629 pub const fn from_raw(x: i32) -> Self { 1630 Self(x) 1631 } 1632 #[inline] as_raw(self) -> i321633 pub const fn as_raw(self) -> i32 { 1634 self.0 1635 } 1636 } 1637 impl CoverageReductionModeNV { 1638 pub const MERGE: Self = Self(0); 1639 pub const TRUNCATE: Self = Self(1); 1640 } 1641 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1642 #[repr(transparent)] 1643 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkValidationCacheHeaderVersionEXT.html>"] 1644 pub struct ValidationCacheHeaderVersionEXT(pub(crate) i32); 1645 impl ValidationCacheHeaderVersionEXT { 1646 #[inline] from_raw(x: i32) -> Self1647 pub const fn from_raw(x: i32) -> Self { 1648 Self(x) 1649 } 1650 #[inline] as_raw(self) -> i321651 pub const fn as_raw(self) -> i32 { 1652 self.0 1653 } 1654 } 1655 impl ValidationCacheHeaderVersionEXT { 1656 pub const ONE: Self = Self(1); 1657 } 1658 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1659 #[repr(transparent)] 1660 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderInfoTypeAMD.html>"] 1661 pub struct ShaderInfoTypeAMD(pub(crate) i32); 1662 impl ShaderInfoTypeAMD { 1663 #[inline] from_raw(x: i32) -> Self1664 pub const fn from_raw(x: i32) -> Self { 1665 Self(x) 1666 } 1667 #[inline] as_raw(self) -> i321668 pub const fn as_raw(self) -> i32 { 1669 self.0 1670 } 1671 } 1672 impl ShaderInfoTypeAMD { 1673 pub const STATISTICS: Self = Self(0); 1674 pub const BINARY: Self = Self(1); 1675 pub const DISASSEMBLY: Self = Self(2); 1676 } 1677 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1678 #[repr(transparent)] 1679 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueueGlobalPriorityKHR.html>"] 1680 pub struct QueueGlobalPriorityKHR(pub(crate) i32); 1681 impl QueueGlobalPriorityKHR { 1682 #[inline] from_raw(x: i32) -> Self1683 pub const fn from_raw(x: i32) -> Self { 1684 Self(x) 1685 } 1686 #[inline] as_raw(self) -> i321687 pub const fn as_raw(self) -> i32 { 1688 self.0 1689 } 1690 } 1691 impl QueueGlobalPriorityKHR { 1692 pub const LOW: Self = Self(128); 1693 pub const MEDIUM: Self = Self(256); 1694 pub const HIGH: Self = Self(512); 1695 pub const REALTIME: Self = Self(1_024); 1696 pub const LOW_EXT: Self = Self::LOW; 1697 pub const MEDIUM_EXT: Self = Self::MEDIUM; 1698 pub const HIGH_EXT: Self = Self::HIGH; 1699 pub const REALTIME_EXT: Self = Self::REALTIME; 1700 } 1701 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1702 #[repr(transparent)] 1703 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkConservativeRasterizationModeEXT.html>"] 1704 pub struct ConservativeRasterizationModeEXT(pub(crate) i32); 1705 impl ConservativeRasterizationModeEXT { 1706 #[inline] from_raw(x: i32) -> Self1707 pub const fn from_raw(x: i32) -> Self { 1708 Self(x) 1709 } 1710 #[inline] as_raw(self) -> i321711 pub const fn as_raw(self) -> i32 { 1712 self.0 1713 } 1714 } 1715 impl ConservativeRasterizationModeEXT { 1716 pub const DISABLED: Self = Self(0); 1717 pub const OVERESTIMATE: Self = Self(1); 1718 pub const UNDERESTIMATE: Self = Self(2); 1719 } 1720 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1721 #[repr(transparent)] 1722 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVendorId.html>"] 1723 pub struct VendorId(pub(crate) i32); 1724 impl VendorId { 1725 #[inline] from_raw(x: i32) -> Self1726 pub const fn from_raw(x: i32) -> Self { 1727 Self(x) 1728 } 1729 #[inline] as_raw(self) -> i321730 pub const fn as_raw(self) -> i32 { 1731 self.0 1732 } 1733 } 1734 impl VendorId { 1735 #[doc = "Vivante vendor ID"] 1736 pub const VIV: Self = Self(0x1_0001); 1737 #[doc = "VeriSilicon vendor ID"] 1738 pub const VSI: Self = Self(0x1_0002); 1739 #[doc = "Kazan Software Renderer"] 1740 pub const KAZAN: Self = Self(0x1_0003); 1741 #[doc = "Codeplay Software Ltd. vendor ID"] 1742 pub const CODEPLAY: Self = Self(0x1_0004); 1743 #[doc = "Mesa vendor ID"] 1744 pub const MESA: Self = Self(0x1_0005); 1745 #[doc = "PoCL vendor ID"] 1746 pub const POCL: Self = Self(0x1_0006); 1747 #[doc = "Mobileye vendor ID"] 1748 pub const MOBILEYE: Self = Self(0x1_0007); 1749 } 1750 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1751 #[repr(transparent)] 1752 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDriverId.html>"] 1753 pub struct DriverId(pub(crate) i32); 1754 impl DriverId { 1755 #[inline] from_raw(x: i32) -> Self1756 pub const fn from_raw(x: i32) -> Self { 1757 Self(x) 1758 } 1759 #[inline] as_raw(self) -> i321760 pub const fn as_raw(self) -> i32 { 1761 self.0 1762 } 1763 } 1764 impl DriverId { 1765 #[doc = "Advanced Micro Devices, Inc."] 1766 pub const AMD_PROPRIETARY: Self = Self(1); 1767 #[doc = "Advanced Micro Devices, Inc."] 1768 pub const AMD_OPEN_SOURCE: Self = Self(2); 1769 #[doc = "Mesa open source project"] 1770 pub const MESA_RADV: Self = Self(3); 1771 #[doc = "NVIDIA Corporation"] 1772 pub const NVIDIA_PROPRIETARY: Self = Self(4); 1773 #[doc = "Intel Corporation"] 1774 pub const INTEL_PROPRIETARY_WINDOWS: Self = Self(5); 1775 #[doc = "Intel Corporation"] 1776 pub const INTEL_OPEN_SOURCE_MESA: Self = Self(6); 1777 #[doc = "Imagination Technologies"] 1778 pub const IMAGINATION_PROPRIETARY: Self = Self(7); 1779 #[doc = "Qualcomm Technologies, Inc."] 1780 pub const QUALCOMM_PROPRIETARY: Self = Self(8); 1781 #[doc = "Arm Limited"] 1782 pub const ARM_PROPRIETARY: Self = Self(9); 1783 #[doc = "Google LLC"] 1784 pub const GOOGLE_SWIFTSHADER: Self = Self(10); 1785 #[doc = "Google LLC"] 1786 pub const GGP_PROPRIETARY: Self = Self(11); 1787 #[doc = "Broadcom Inc."] 1788 pub const BROADCOM_PROPRIETARY: Self = Self(12); 1789 #[doc = "Mesa"] 1790 pub const MESA_LLVMPIPE: Self = Self(13); 1791 #[doc = "MoltenVK"] 1792 pub const MOLTENVK: Self = Self(14); 1793 #[doc = "Core Avionics & Industrial Inc."] 1794 pub const COREAVI_PROPRIETARY: Self = Self(15); 1795 #[doc = "Juice Technologies, Inc."] 1796 pub const JUICE_PROPRIETARY: Self = Self(16); 1797 #[doc = "Verisilicon, Inc."] 1798 pub const VERISILICON_PROPRIETARY: Self = Self(17); 1799 #[doc = "Mesa open source project"] 1800 pub const MESA_TURNIP: Self = Self(18); 1801 #[doc = "Mesa open source project"] 1802 pub const MESA_V3DV: Self = Self(19); 1803 #[doc = "Mesa open source project"] 1804 pub const MESA_PANVK: Self = Self(20); 1805 #[doc = "Samsung Electronics Co., Ltd."] 1806 pub const SAMSUNG_PROPRIETARY: Self = Self(21); 1807 #[doc = "Mesa open source project"] 1808 pub const MESA_VENUS: Self = Self(22); 1809 #[doc = "Mesa open source project"] 1810 pub const MESA_DOZEN: Self = Self(23); 1811 #[doc = "Mesa open source project"] 1812 pub const MESA_NVK: Self = Self(24); 1813 #[doc = "Imagination Technologies"] 1814 pub const IMAGINATION_OPEN_SOURCE_MESA: Self = Self(25); 1815 } 1816 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1817 #[repr(transparent)] 1818 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShadingRatePaletteEntryNV.html>"] 1819 pub struct ShadingRatePaletteEntryNV(pub(crate) i32); 1820 impl ShadingRatePaletteEntryNV { 1821 #[inline] from_raw(x: i32) -> Self1822 pub const fn from_raw(x: i32) -> Self { 1823 Self(x) 1824 } 1825 #[inline] as_raw(self) -> i321826 pub const fn as_raw(self) -> i32 { 1827 self.0 1828 } 1829 } 1830 impl ShadingRatePaletteEntryNV { 1831 pub const NO_INVOCATIONS: Self = Self(0); 1832 pub const TYPE_16_INVOCATIONS_PER_PIXEL: Self = Self(1); 1833 pub const TYPE_8_INVOCATIONS_PER_PIXEL: Self = Self(2); 1834 pub const TYPE_4_INVOCATIONS_PER_PIXEL: Self = Self(3); 1835 pub const TYPE_2_INVOCATIONS_PER_PIXEL: Self = Self(4); 1836 pub const TYPE_1_INVOCATION_PER_PIXEL: Self = Self(5); 1837 pub const TYPE_1_INVOCATION_PER_2X1_PIXELS: Self = Self(6); 1838 pub const TYPE_1_INVOCATION_PER_1X2_PIXELS: Self = Self(7); 1839 pub const TYPE_1_INVOCATION_PER_2X2_PIXELS: Self = Self(8); 1840 pub const TYPE_1_INVOCATION_PER_4X2_PIXELS: Self = Self(9); 1841 pub const TYPE_1_INVOCATION_PER_2X4_PIXELS: Self = Self(10); 1842 pub const TYPE_1_INVOCATION_PER_4X4_PIXELS: Self = Self(11); 1843 } 1844 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1845 #[repr(transparent)] 1846 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCoarseSampleOrderTypeNV.html>"] 1847 pub struct CoarseSampleOrderTypeNV(pub(crate) i32); 1848 impl CoarseSampleOrderTypeNV { 1849 #[inline] from_raw(x: i32) -> Self1850 pub const fn from_raw(x: i32) -> Self { 1851 Self(x) 1852 } 1853 #[inline] as_raw(self) -> i321854 pub const fn as_raw(self) -> i32 { 1855 self.0 1856 } 1857 } 1858 impl CoarseSampleOrderTypeNV { 1859 pub const DEFAULT: Self = Self(0); 1860 pub const CUSTOM: Self = Self(1); 1861 pub const PIXEL_MAJOR: Self = Self(2); 1862 pub const SAMPLE_MAJOR: Self = Self(3); 1863 } 1864 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1865 #[repr(transparent)] 1866 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyAccelerationStructureModeKHR.html>"] 1867 pub struct CopyAccelerationStructureModeKHR(pub(crate) i32); 1868 impl CopyAccelerationStructureModeKHR { 1869 #[inline] from_raw(x: i32) -> Self1870 pub const fn from_raw(x: i32) -> Self { 1871 Self(x) 1872 } 1873 #[inline] as_raw(self) -> i321874 pub const fn as_raw(self) -> i32 { 1875 self.0 1876 } 1877 } 1878 impl CopyAccelerationStructureModeKHR { 1879 pub const CLONE: Self = Self(0); 1880 pub const COMPACT: Self = Self(1); 1881 pub const SERIALIZE: Self = Self(2); 1882 pub const DESERIALIZE: Self = Self(3); 1883 } 1884 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1885 #[repr(transparent)] 1886 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBuildAccelerationStructureModeKHR.html>"] 1887 pub struct BuildAccelerationStructureModeKHR(pub(crate) i32); 1888 impl BuildAccelerationStructureModeKHR { 1889 #[inline] from_raw(x: i32) -> Self1890 pub const fn from_raw(x: i32) -> Self { 1891 Self(x) 1892 } 1893 #[inline] as_raw(self) -> i321894 pub const fn as_raw(self) -> i32 { 1895 self.0 1896 } 1897 } 1898 impl BuildAccelerationStructureModeKHR { 1899 pub const BUILD: Self = Self(0); 1900 pub const UPDATE: Self = Self(1); 1901 } 1902 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1903 #[repr(transparent)] 1904 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureTypeKHR.html>"] 1905 pub struct AccelerationStructureTypeKHR(pub(crate) i32); 1906 impl AccelerationStructureTypeKHR { 1907 #[inline] from_raw(x: i32) -> Self1908 pub const fn from_raw(x: i32) -> Self { 1909 Self(x) 1910 } 1911 #[inline] as_raw(self) -> i321912 pub const fn as_raw(self) -> i32 { 1913 self.0 1914 } 1915 } 1916 impl AccelerationStructureTypeKHR { 1917 pub const TOP_LEVEL: Self = Self(0); 1918 pub const BOTTOM_LEVEL: Self = Self(1); 1919 pub const GENERIC: Self = Self(2); 1920 } 1921 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1922 #[repr(transparent)] 1923 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkGeometryTypeKHR.html>"] 1924 pub struct GeometryTypeKHR(pub(crate) i32); 1925 impl GeometryTypeKHR { 1926 #[inline] from_raw(x: i32) -> Self1927 pub const fn from_raw(x: i32) -> Self { 1928 Self(x) 1929 } 1930 #[inline] as_raw(self) -> i321931 pub const fn as_raw(self) -> i32 { 1932 self.0 1933 } 1934 } 1935 impl GeometryTypeKHR { 1936 pub const TRIANGLES: Self = Self(0); 1937 pub const AABBS: Self = Self(1); 1938 pub const INSTANCES: Self = Self(2); 1939 } 1940 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1941 #[repr(transparent)] 1942 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureMemoryRequirementsTypeNV.html>"] 1943 pub struct AccelerationStructureMemoryRequirementsTypeNV(pub(crate) i32); 1944 impl AccelerationStructureMemoryRequirementsTypeNV { 1945 #[inline] from_raw(x: i32) -> Self1946 pub const fn from_raw(x: i32) -> Self { 1947 Self(x) 1948 } 1949 #[inline] as_raw(self) -> i321950 pub const fn as_raw(self) -> i32 { 1951 self.0 1952 } 1953 } 1954 impl AccelerationStructureMemoryRequirementsTypeNV { 1955 pub const OBJECT: Self = Self(0); 1956 pub const BUILD_SCRATCH: Self = Self(1); 1957 pub const UPDATE_SCRATCH: Self = Self(2); 1958 } 1959 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1960 #[repr(transparent)] 1961 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureBuildTypeKHR.html>"] 1962 pub struct AccelerationStructureBuildTypeKHR(pub(crate) i32); 1963 impl AccelerationStructureBuildTypeKHR { 1964 #[inline] from_raw(x: i32) -> Self1965 pub const fn from_raw(x: i32) -> Self { 1966 Self(x) 1967 } 1968 #[inline] as_raw(self) -> i321969 pub const fn as_raw(self) -> i32 { 1970 self.0 1971 } 1972 } 1973 impl AccelerationStructureBuildTypeKHR { 1974 pub const HOST: Self = Self(0); 1975 pub const DEVICE: Self = Self(1); 1976 pub const HOST_OR_DEVICE: Self = Self(2); 1977 } 1978 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1979 #[repr(transparent)] 1980 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkRayTracingShaderGroupTypeKHR.html>"] 1981 pub struct RayTracingShaderGroupTypeKHR(pub(crate) i32); 1982 impl RayTracingShaderGroupTypeKHR { 1983 #[inline] from_raw(x: i32) -> Self1984 pub const fn from_raw(x: i32) -> Self { 1985 Self(x) 1986 } 1987 #[inline] as_raw(self) -> i321988 pub const fn as_raw(self) -> i32 { 1989 self.0 1990 } 1991 } 1992 impl RayTracingShaderGroupTypeKHR { 1993 pub const GENERAL: Self = Self(0); 1994 pub const TRIANGLES_HIT_GROUP: Self = Self(1); 1995 pub const PROCEDURAL_HIT_GROUP: Self = Self(2); 1996 } 1997 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1998 #[repr(transparent)] 1999 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureCompatibilityKHR.html>"] 2000 pub struct AccelerationStructureCompatibilityKHR(pub(crate) i32); 2001 impl AccelerationStructureCompatibilityKHR { 2002 #[inline] from_raw(x: i32) -> Self2003 pub const fn from_raw(x: i32) -> Self { 2004 Self(x) 2005 } 2006 #[inline] as_raw(self) -> i322007 pub const fn as_raw(self) -> i32 { 2008 self.0 2009 } 2010 } 2011 impl AccelerationStructureCompatibilityKHR { 2012 pub const COMPATIBLE: Self = Self(0); 2013 pub const INCOMPATIBLE: Self = Self(1); 2014 } 2015 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2016 #[repr(transparent)] 2017 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderGroupShaderKHR.html>"] 2018 pub struct ShaderGroupShaderKHR(pub(crate) i32); 2019 impl ShaderGroupShaderKHR { 2020 #[inline] from_raw(x: i32) -> Self2021 pub const fn from_raw(x: i32) -> Self { 2022 Self(x) 2023 } 2024 #[inline] as_raw(self) -> i322025 pub const fn as_raw(self) -> i32 { 2026 self.0 2027 } 2028 } 2029 impl ShaderGroupShaderKHR { 2030 pub const GENERAL: Self = Self(0); 2031 pub const CLOSEST_HIT: Self = Self(1); 2032 pub const ANY_HIT: Self = Self(2); 2033 pub const INTERSECTION: Self = Self(3); 2034 } 2035 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2036 #[repr(transparent)] 2037 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMemoryOverallocationBehaviorAMD.html>"] 2038 pub struct MemoryOverallocationBehaviorAMD(pub(crate) i32); 2039 impl MemoryOverallocationBehaviorAMD { 2040 #[inline] from_raw(x: i32) -> Self2041 pub const fn from_raw(x: i32) -> Self { 2042 Self(x) 2043 } 2044 #[inline] as_raw(self) -> i322045 pub const fn as_raw(self) -> i32 { 2046 self.0 2047 } 2048 } 2049 impl MemoryOverallocationBehaviorAMD { 2050 pub const DEFAULT: Self = Self(0); 2051 pub const ALLOWED: Self = Self(1); 2052 pub const DISALLOWED: Self = Self(2); 2053 } 2054 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2055 #[repr(transparent)] 2056 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkScopeNV.html>"] 2057 pub struct ScopeNV(pub(crate) i32); 2058 impl ScopeNV { 2059 #[inline] from_raw(x: i32) -> Self2060 pub const fn from_raw(x: i32) -> Self { 2061 Self(x) 2062 } 2063 #[inline] as_raw(self) -> i322064 pub const fn as_raw(self) -> i32 { 2065 self.0 2066 } 2067 } 2068 impl ScopeNV { 2069 pub const DEVICE: Self = Self(1); 2070 pub const WORKGROUP: Self = Self(2); 2071 pub const SUBGROUP: Self = Self(3); 2072 pub const QUEUE_FAMILY: Self = Self(5); 2073 } 2074 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2075 #[repr(transparent)] 2076 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkComponentTypeNV.html>"] 2077 pub struct ComponentTypeNV(pub(crate) i32); 2078 impl ComponentTypeNV { 2079 #[inline] from_raw(x: i32) -> Self2080 pub const fn from_raw(x: i32) -> Self { 2081 Self(x) 2082 } 2083 #[inline] as_raw(self) -> i322084 pub const fn as_raw(self) -> i32 { 2085 self.0 2086 } 2087 } 2088 impl ComponentTypeNV { 2089 pub const FLOAT16: Self = Self(0); 2090 pub const FLOAT32: Self = Self(1); 2091 pub const FLOAT64: Self = Self(2); 2092 pub const SINT8: Self = Self(3); 2093 pub const SINT16: Self = Self(4); 2094 pub const SINT32: Self = Self(5); 2095 pub const SINT64: Self = Self(6); 2096 pub const UINT8: Self = Self(7); 2097 pub const UINT16: Self = Self(8); 2098 pub const UINT32: Self = Self(9); 2099 pub const UINT64: Self = Self(10); 2100 } 2101 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2102 #[repr(transparent)] 2103 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFullScreenExclusiveEXT.html>"] 2104 pub struct FullScreenExclusiveEXT(pub(crate) i32); 2105 impl FullScreenExclusiveEXT { 2106 #[inline] from_raw(x: i32) -> Self2107 pub const fn from_raw(x: i32) -> Self { 2108 Self(x) 2109 } 2110 #[inline] as_raw(self) -> i322111 pub const fn as_raw(self) -> i32 { 2112 self.0 2113 } 2114 } 2115 impl FullScreenExclusiveEXT { 2116 pub const DEFAULT: Self = Self(0); 2117 pub const ALLOWED: Self = Self(1); 2118 pub const DISALLOWED: Self = Self(2); 2119 pub const APPLICATION_CONTROLLED: Self = Self(3); 2120 } 2121 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2122 #[repr(transparent)] 2123 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceCounterScopeKHR.html>"] 2124 pub struct PerformanceCounterScopeKHR(pub(crate) i32); 2125 impl PerformanceCounterScopeKHR { 2126 #[inline] from_raw(x: i32) -> Self2127 pub const fn from_raw(x: i32) -> Self { 2128 Self(x) 2129 } 2130 #[inline] as_raw(self) -> i322131 pub const fn as_raw(self) -> i32 { 2132 self.0 2133 } 2134 } 2135 impl PerformanceCounterScopeKHR { 2136 pub const COMMAND_BUFFER: Self = Self(0); 2137 pub const RENDER_PASS: Self = Self(1); 2138 pub const COMMAND: Self = Self(2); 2139 } 2140 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2141 #[repr(transparent)] 2142 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceCounterUnitKHR.html>"] 2143 pub struct PerformanceCounterUnitKHR(pub(crate) i32); 2144 impl PerformanceCounterUnitKHR { 2145 #[inline] from_raw(x: i32) -> Self2146 pub const fn from_raw(x: i32) -> Self { 2147 Self(x) 2148 } 2149 #[inline] as_raw(self) -> i322150 pub const fn as_raw(self) -> i32 { 2151 self.0 2152 } 2153 } 2154 impl PerformanceCounterUnitKHR { 2155 pub const GENERIC: Self = Self(0); 2156 pub const PERCENTAGE: Self = Self(1); 2157 pub const NANOSECONDS: Self = Self(2); 2158 pub const BYTES: Self = Self(3); 2159 pub const BYTES_PER_SECOND: Self = Self(4); 2160 pub const KELVIN: Self = Self(5); 2161 pub const WATTS: Self = Self(6); 2162 pub const VOLTS: Self = Self(7); 2163 pub const AMPS: Self = Self(8); 2164 pub const HERTZ: Self = Self(9); 2165 pub const CYCLES: Self = Self(10); 2166 } 2167 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2168 #[repr(transparent)] 2169 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceCounterStorageKHR.html>"] 2170 pub struct PerformanceCounterStorageKHR(pub(crate) i32); 2171 impl PerformanceCounterStorageKHR { 2172 #[inline] from_raw(x: i32) -> Self2173 pub const fn from_raw(x: i32) -> Self { 2174 Self(x) 2175 } 2176 #[inline] as_raw(self) -> i322177 pub const fn as_raw(self) -> i32 { 2178 self.0 2179 } 2180 } 2181 impl PerformanceCounterStorageKHR { 2182 pub const INT32: Self = Self(0); 2183 pub const INT64: Self = Self(1); 2184 pub const UINT32: Self = Self(2); 2185 pub const UINT64: Self = Self(3); 2186 pub const FLOAT32: Self = Self(4); 2187 pub const FLOAT64: Self = Self(5); 2188 } 2189 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2190 #[repr(transparent)] 2191 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceConfigurationTypeINTEL.html>"] 2192 pub struct PerformanceConfigurationTypeINTEL(pub(crate) i32); 2193 impl PerformanceConfigurationTypeINTEL { 2194 #[inline] from_raw(x: i32) -> Self2195 pub const fn from_raw(x: i32) -> Self { 2196 Self(x) 2197 } 2198 #[inline] as_raw(self) -> i322199 pub const fn as_raw(self) -> i32 { 2200 self.0 2201 } 2202 } 2203 impl PerformanceConfigurationTypeINTEL { 2204 pub const COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED: Self = Self(0); 2205 } 2206 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2207 #[repr(transparent)] 2208 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryPoolSamplingModeINTEL.html>"] 2209 pub struct QueryPoolSamplingModeINTEL(pub(crate) i32); 2210 impl QueryPoolSamplingModeINTEL { 2211 #[inline] from_raw(x: i32) -> Self2212 pub const fn from_raw(x: i32) -> Self { 2213 Self(x) 2214 } 2215 #[inline] as_raw(self) -> i322216 pub const fn as_raw(self) -> i32 { 2217 self.0 2218 } 2219 } 2220 impl QueryPoolSamplingModeINTEL { 2221 pub const MANUAL: Self = Self(0); 2222 } 2223 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2224 #[repr(transparent)] 2225 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceOverrideTypeINTEL.html>"] 2226 pub struct PerformanceOverrideTypeINTEL(pub(crate) i32); 2227 impl PerformanceOverrideTypeINTEL { 2228 #[inline] from_raw(x: i32) -> Self2229 pub const fn from_raw(x: i32) -> Self { 2230 Self(x) 2231 } 2232 #[inline] as_raw(self) -> i322233 pub const fn as_raw(self) -> i32 { 2234 self.0 2235 } 2236 } 2237 impl PerformanceOverrideTypeINTEL { 2238 pub const NULL_HARDWARE: Self = Self(0); 2239 pub const FLUSH_GPU_CACHES: Self = Self(1); 2240 } 2241 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2242 #[repr(transparent)] 2243 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceParameterTypeINTEL.html>"] 2244 pub struct PerformanceParameterTypeINTEL(pub(crate) i32); 2245 impl PerformanceParameterTypeINTEL { 2246 #[inline] from_raw(x: i32) -> Self2247 pub const fn from_raw(x: i32) -> Self { 2248 Self(x) 2249 } 2250 #[inline] as_raw(self) -> i322251 pub const fn as_raw(self) -> i32 { 2252 self.0 2253 } 2254 } 2255 impl PerformanceParameterTypeINTEL { 2256 pub const HW_COUNTERS_SUPPORTED: Self = Self(0); 2257 pub const STREAM_MARKER_VALIDS: Self = Self(1); 2258 } 2259 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2260 #[repr(transparent)] 2261 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPerformanceValueTypeINTEL.html>"] 2262 pub struct PerformanceValueTypeINTEL(pub(crate) i32); 2263 impl PerformanceValueTypeINTEL { 2264 #[inline] from_raw(x: i32) -> Self2265 pub const fn from_raw(x: i32) -> Self { 2266 Self(x) 2267 } 2268 #[inline] as_raw(self) -> i322269 pub const fn as_raw(self) -> i32 { 2270 self.0 2271 } 2272 } 2273 impl PerformanceValueTypeINTEL { 2274 pub const UINT32: Self = Self(0); 2275 pub const UINT64: Self = Self(1); 2276 pub const FLOAT: Self = Self(2); 2277 pub const BOOL: Self = Self(3); 2278 pub const STRING: Self = Self(4); 2279 } 2280 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2281 #[repr(transparent)] 2282 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderFloatControlsIndependence.html>"] 2283 pub struct ShaderFloatControlsIndependence(pub(crate) i32); 2284 impl ShaderFloatControlsIndependence { 2285 #[inline] from_raw(x: i32) -> Self2286 pub const fn from_raw(x: i32) -> Self { 2287 Self(x) 2288 } 2289 #[inline] as_raw(self) -> i322290 pub const fn as_raw(self) -> i32 { 2291 self.0 2292 } 2293 } 2294 impl ShaderFloatControlsIndependence { 2295 pub const TYPE_32_ONLY: Self = Self(0); 2296 pub const ALL: Self = Self(1); 2297 pub const NONE: Self = Self(2); 2298 } 2299 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2300 #[repr(transparent)] 2301 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineExecutableStatisticFormatKHR.html>"] 2302 pub struct PipelineExecutableStatisticFormatKHR(pub(crate) i32); 2303 impl PipelineExecutableStatisticFormatKHR { 2304 #[inline] from_raw(x: i32) -> Self2305 pub const fn from_raw(x: i32) -> Self { 2306 Self(x) 2307 } 2308 #[inline] as_raw(self) -> i322309 pub const fn as_raw(self) -> i32 { 2310 self.0 2311 } 2312 } 2313 impl PipelineExecutableStatisticFormatKHR { 2314 pub const BOOL32: Self = Self(0); 2315 pub const INT64: Self = Self(1); 2316 pub const UINT64: Self = Self(2); 2317 pub const FLOAT64: Self = Self(3); 2318 } 2319 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2320 #[repr(transparent)] 2321 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkLineRasterizationModeEXT.html>"] 2322 pub struct LineRasterizationModeEXT(pub(crate) i32); 2323 impl LineRasterizationModeEXT { 2324 #[inline] from_raw(x: i32) -> Self2325 pub const fn from_raw(x: i32) -> Self { 2326 Self(x) 2327 } 2328 #[inline] as_raw(self) -> i322329 pub const fn as_raw(self) -> i32 { 2330 self.0 2331 } 2332 } 2333 impl LineRasterizationModeEXT { 2334 pub const DEFAULT: Self = Self(0); 2335 pub const RECTANGULAR: Self = Self(1); 2336 pub const BRESENHAM: Self = Self(2); 2337 pub const RECTANGULAR_SMOOTH: Self = Self(3); 2338 } 2339 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2340 #[repr(transparent)] 2341 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFragmentShadingRateCombinerOpKHR.html>"] 2342 pub struct FragmentShadingRateCombinerOpKHR(pub(crate) i32); 2343 impl FragmentShadingRateCombinerOpKHR { 2344 #[inline] from_raw(x: i32) -> Self2345 pub const fn from_raw(x: i32) -> Self { 2346 Self(x) 2347 } 2348 #[inline] as_raw(self) -> i322349 pub const fn as_raw(self) -> i32 { 2350 self.0 2351 } 2352 } 2353 impl FragmentShadingRateCombinerOpKHR { 2354 pub const KEEP: Self = Self(0); 2355 pub const REPLACE: Self = Self(1); 2356 pub const MIN: Self = Self(2); 2357 pub const MAX: Self = Self(3); 2358 pub const MUL: Self = Self(4); 2359 } 2360 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2361 #[repr(transparent)] 2362 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFragmentShadingRateNV.html>"] 2363 pub struct FragmentShadingRateNV(pub(crate) i32); 2364 impl FragmentShadingRateNV { 2365 #[inline] from_raw(x: i32) -> Self2366 pub const fn from_raw(x: i32) -> Self { 2367 Self(x) 2368 } 2369 #[inline] as_raw(self) -> i322370 pub const fn as_raw(self) -> i32 { 2371 self.0 2372 } 2373 } 2374 impl FragmentShadingRateNV { 2375 pub const TYPE_1_INVOCATION_PER_PIXEL: Self = Self(0); 2376 pub const TYPE_1_INVOCATION_PER_1X2_PIXELS: Self = Self(1); 2377 pub const TYPE_1_INVOCATION_PER_2X1_PIXELS: Self = Self(4); 2378 pub const TYPE_1_INVOCATION_PER_2X2_PIXELS: Self = Self(5); 2379 pub const TYPE_1_INVOCATION_PER_2X4_PIXELS: Self = Self(6); 2380 pub const TYPE_1_INVOCATION_PER_4X2_PIXELS: Self = Self(9); 2381 pub const TYPE_1_INVOCATION_PER_4X4_PIXELS: Self = Self(10); 2382 pub const TYPE_2_INVOCATIONS_PER_PIXEL: Self = Self(11); 2383 pub const TYPE_4_INVOCATIONS_PER_PIXEL: Self = Self(12); 2384 pub const TYPE_8_INVOCATIONS_PER_PIXEL: Self = Self(13); 2385 pub const TYPE_16_INVOCATIONS_PER_PIXEL: Self = Self(14); 2386 pub const NO_INVOCATIONS: Self = Self(15); 2387 } 2388 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2389 #[repr(transparent)] 2390 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkFragmentShadingRateTypeNV.html>"] 2391 pub struct FragmentShadingRateTypeNV(pub(crate) i32); 2392 impl FragmentShadingRateTypeNV { 2393 #[inline] from_raw(x: i32) -> Self2394 pub const fn from_raw(x: i32) -> Self { 2395 Self(x) 2396 } 2397 #[inline] as_raw(self) -> i322398 pub const fn as_raw(self) -> i32 { 2399 self.0 2400 } 2401 } 2402 impl FragmentShadingRateTypeNV { 2403 pub const FRAGMENT_SIZE: Self = Self(0); 2404 pub const ENUMS: Self = Self(1); 2405 } 2406 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2407 #[repr(transparent)] 2408 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkSubpassMergeStatusEXT.html>"] 2409 pub struct SubpassMergeStatusEXT(pub(crate) i32); 2410 impl SubpassMergeStatusEXT { 2411 #[inline] from_raw(x: i32) -> Self2412 pub const fn from_raw(x: i32) -> Self { 2413 Self(x) 2414 } 2415 #[inline] as_raw(self) -> i322416 pub const fn as_raw(self) -> i32 { 2417 self.0 2418 } 2419 } 2420 impl SubpassMergeStatusEXT { 2421 pub const MERGED: Self = Self(0); 2422 pub const DISALLOWED: Self = Self(1); 2423 pub const NOT_MERGED_SIDE_EFFECTS: Self = Self(2); 2424 pub const NOT_MERGED_SAMPLES_MISMATCH: Self = Self(3); 2425 pub const NOT_MERGED_VIEWS_MISMATCH: Self = Self(4); 2426 pub const NOT_MERGED_ALIASING: Self = Self(5); 2427 pub const NOT_MERGED_DEPENDENCIES: Self = Self(6); 2428 pub const NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT: Self = Self(7); 2429 pub const NOT_MERGED_TOO_MANY_ATTACHMENTS: Self = Self(8); 2430 pub const NOT_MERGED_INSUFFICIENT_STORAGE: Self = Self(9); 2431 pub const NOT_MERGED_DEPTH_STENCIL_COUNT: Self = Self(10); 2432 pub const NOT_MERGED_RESOLVE_ATTACHMENT_REUSE: Self = Self(11); 2433 pub const NOT_MERGED_SINGLE_SUBPASS: Self = Self(12); 2434 pub const NOT_MERGED_UNSPECIFIED: Self = Self(13); 2435 } 2436 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2437 #[repr(transparent)] 2438 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkProvokingVertexModeEXT.html>"] 2439 pub struct ProvokingVertexModeEXT(pub(crate) i32); 2440 impl ProvokingVertexModeEXT { 2441 #[inline] from_raw(x: i32) -> Self2442 pub const fn from_raw(x: i32) -> Self { 2443 Self(x) 2444 } 2445 #[inline] as_raw(self) -> i322446 pub const fn as_raw(self) -> i32 { 2447 self.0 2448 } 2449 } 2450 impl ProvokingVertexModeEXT { 2451 pub const FIRST_VERTEX: Self = Self(0); 2452 pub const LAST_VERTEX: Self = Self(1); 2453 } 2454 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2455 #[repr(transparent)] 2456 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkAccelerationStructureMotionInstanceTypeNV.html>"] 2457 pub struct AccelerationStructureMotionInstanceTypeNV(pub(crate) i32); 2458 impl AccelerationStructureMotionInstanceTypeNV { 2459 #[inline] from_raw(x: i32) -> Self2460 pub const fn from_raw(x: i32) -> Self { 2461 Self(x) 2462 } 2463 #[inline] as_raw(self) -> i322464 pub const fn as_raw(self) -> i32 { 2465 self.0 2466 } 2467 } 2468 impl AccelerationStructureMotionInstanceTypeNV { 2469 pub const STATIC: Self = Self(0); 2470 pub const MATRIX_MOTION: Self = Self(1); 2471 pub const SRT_MOTION: Self = Self(2); 2472 } 2473 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2474 #[repr(transparent)] 2475 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceAddressBindingTypeEXT.html>"] 2476 pub struct DeviceAddressBindingTypeEXT(pub(crate) i32); 2477 impl DeviceAddressBindingTypeEXT { 2478 #[inline] from_raw(x: i32) -> Self2479 pub const fn from_raw(x: i32) -> Self { 2480 Self(x) 2481 } 2482 #[inline] as_raw(self) -> i322483 pub const fn as_raw(self) -> i32 { 2484 self.0 2485 } 2486 } 2487 impl DeviceAddressBindingTypeEXT { 2488 pub const BIND: Self = Self(0); 2489 pub const UNBIND: Self = Self(1); 2490 } 2491 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2492 #[repr(transparent)] 2493 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkQueryResultStatusKHR.html>"] 2494 pub struct QueryResultStatusKHR(pub(crate) i32); 2495 impl QueryResultStatusKHR { 2496 #[inline] from_raw(x: i32) -> Self2497 pub const fn from_raw(x: i32) -> Self { 2498 Self(x) 2499 } 2500 #[inline] as_raw(self) -> i322501 pub const fn as_raw(self) -> i32 { 2502 self.0 2503 } 2504 } 2505 impl QueryResultStatusKHR { 2506 pub const ERROR: Self = Self(-1); 2507 pub const NOT_READY: Self = Self(0); 2508 pub const COMPLETE: Self = Self(1); 2509 } 2510 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2511 #[repr(transparent)] 2512 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeTuningModeKHR.html>"] 2513 pub struct VideoEncodeTuningModeKHR(pub(crate) i32); 2514 impl VideoEncodeTuningModeKHR { 2515 #[inline] from_raw(x: i32) -> Self2516 pub const fn from_raw(x: i32) -> Self { 2517 Self(x) 2518 } 2519 #[inline] as_raw(self) -> i322520 pub const fn as_raw(self) -> i32 { 2521 self.0 2522 } 2523 } 2524 impl VideoEncodeTuningModeKHR { 2525 pub const DEFAULT: Self = Self(0); 2526 pub const HIGH_QUALITY: Self = Self(1); 2527 pub const LOW_LATENCY: Self = Self(2); 2528 pub const ULTRA_LOW_LATENCY: Self = Self(3); 2529 pub const LOSSLESS: Self = Self(4); 2530 } 2531 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2532 #[repr(transparent)] 2533 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH264RateControlStructureEXT.html>"] 2534 pub struct VideoEncodeH264RateControlStructureEXT(pub(crate) i32); 2535 impl VideoEncodeH264RateControlStructureEXT { 2536 #[inline] from_raw(x: i32) -> Self2537 pub const fn from_raw(x: i32) -> Self { 2538 Self(x) 2539 } 2540 #[inline] as_raw(self) -> i322541 pub const fn as_raw(self) -> i32 { 2542 self.0 2543 } 2544 } 2545 impl VideoEncodeH264RateControlStructureEXT { 2546 pub const UNKNOWN: Self = Self(0); 2547 pub const FLAT: Self = Self(1); 2548 pub const DYADIC: Self = Self(2); 2549 } 2550 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2551 #[repr(transparent)] 2552 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkVideoEncodeH265RateControlStructureEXT.html>"] 2553 pub struct VideoEncodeH265RateControlStructureEXT(pub(crate) i32); 2554 impl VideoEncodeH265RateControlStructureEXT { 2555 #[inline] from_raw(x: i32) -> Self2556 pub const fn from_raw(x: i32) -> Self { 2557 Self(x) 2558 } 2559 #[inline] as_raw(self) -> i322560 pub const fn as_raw(self) -> i32 { 2561 self.0 2562 } 2563 } 2564 impl VideoEncodeH265RateControlStructureEXT { 2565 pub const UNKNOWN: Self = Self(0); 2566 pub const FLAT: Self = Self(1); 2567 pub const DYADIC: Self = Self(2); 2568 } 2569 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2570 #[repr(transparent)] 2571 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRobustnessBufferBehaviorEXT.html>"] 2572 pub struct PipelineRobustnessBufferBehaviorEXT(pub(crate) i32); 2573 impl PipelineRobustnessBufferBehaviorEXT { 2574 #[inline] from_raw(x: i32) -> Self2575 pub const fn from_raw(x: i32) -> Self { 2576 Self(x) 2577 } 2578 #[inline] as_raw(self) -> i322579 pub const fn as_raw(self) -> i32 { 2580 self.0 2581 } 2582 } 2583 impl PipelineRobustnessBufferBehaviorEXT { 2584 pub const DEVICE_DEFAULT: Self = Self(0); 2585 pub const DISABLED: Self = Self(1); 2586 pub const ROBUST_BUFFER_ACCESS: Self = Self(2); 2587 pub const ROBUST_BUFFER_ACCESS_2: Self = Self(3); 2588 } 2589 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2590 #[repr(transparent)] 2591 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPipelineRobustnessImageBehaviorEXT.html>"] 2592 pub struct PipelineRobustnessImageBehaviorEXT(pub(crate) i32); 2593 impl PipelineRobustnessImageBehaviorEXT { 2594 #[inline] from_raw(x: i32) -> Self2595 pub const fn from_raw(x: i32) -> Self { 2596 Self(x) 2597 } 2598 #[inline] as_raw(self) -> i322599 pub const fn as_raw(self) -> i32 { 2600 self.0 2601 } 2602 } 2603 impl PipelineRobustnessImageBehaviorEXT { 2604 pub const DEVICE_DEFAULT: Self = Self(0); 2605 pub const DISABLED: Self = Self(1); 2606 pub const ROBUST_IMAGE_ACCESS: Self = Self(2); 2607 pub const ROBUST_IMAGE_ACCESS_2: Self = Self(3); 2608 } 2609 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2610 #[repr(transparent)] 2611 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowPerformanceLevelNV.html>"] 2612 pub struct OpticalFlowPerformanceLevelNV(pub(crate) i32); 2613 impl OpticalFlowPerformanceLevelNV { 2614 #[inline] from_raw(x: i32) -> Self2615 pub const fn from_raw(x: i32) -> Self { 2616 Self(x) 2617 } 2618 #[inline] as_raw(self) -> i322619 pub const fn as_raw(self) -> i32 { 2620 self.0 2621 } 2622 } 2623 impl OpticalFlowPerformanceLevelNV { 2624 pub const UNKNOWN: Self = Self(0); 2625 pub const SLOW: Self = Self(1); 2626 pub const MEDIUM: Self = Self(2); 2627 pub const FAST: Self = Self(3); 2628 } 2629 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2630 #[repr(transparent)] 2631 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpticalFlowSessionBindingPointNV.html>"] 2632 pub struct OpticalFlowSessionBindingPointNV(pub(crate) i32); 2633 impl OpticalFlowSessionBindingPointNV { 2634 #[inline] from_raw(x: i32) -> Self2635 pub const fn from_raw(x: i32) -> Self { 2636 Self(x) 2637 } 2638 #[inline] as_raw(self) -> i322639 pub const fn as_raw(self) -> i32 { 2640 self.0 2641 } 2642 } 2643 impl OpticalFlowSessionBindingPointNV { 2644 pub const UNKNOWN: Self = Self(0); 2645 pub const INPUT: Self = Self(1); 2646 pub const REFERENCE: Self = Self(2); 2647 pub const HINT: Self = Self(3); 2648 pub const FLOW_VECTOR: Self = Self(4); 2649 pub const BACKWARD_FLOW_VECTOR: Self = Self(5); 2650 pub const COST: Self = Self(6); 2651 pub const BACKWARD_COST: Self = Self(7); 2652 pub const GLOBAL_FLOW: Self = Self(8); 2653 } 2654 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2655 #[repr(transparent)] 2656 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkMicromapTypeEXT.html>"] 2657 pub struct MicromapTypeEXT(pub(crate) i32); 2658 impl MicromapTypeEXT { 2659 #[inline] from_raw(x: i32) -> Self2660 pub const fn from_raw(x: i32) -> Self { 2661 Self(x) 2662 } 2663 #[inline] as_raw(self) -> i322664 pub const fn as_raw(self) -> i32 { 2665 self.0 2666 } 2667 } 2668 impl MicromapTypeEXT { 2669 pub const OPACITY_MICROMAP: Self = Self(0); 2670 } 2671 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2672 #[repr(transparent)] 2673 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCopyMicromapModeEXT.html>"] 2674 pub struct CopyMicromapModeEXT(pub(crate) i32); 2675 impl CopyMicromapModeEXT { 2676 #[inline] from_raw(x: i32) -> Self2677 pub const fn from_raw(x: i32) -> Self { 2678 Self(x) 2679 } 2680 #[inline] as_raw(self) -> i322681 pub const fn as_raw(self) -> i32 { 2682 self.0 2683 } 2684 } 2685 impl CopyMicromapModeEXT { 2686 pub const CLONE: Self = Self(0); 2687 pub const SERIALIZE: Self = Self(1); 2688 pub const DESERIALIZE: Self = Self(2); 2689 pub const COMPACT: Self = Self(3); 2690 } 2691 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2692 #[repr(transparent)] 2693 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkBuildMicromapModeEXT.html>"] 2694 pub struct BuildMicromapModeEXT(pub(crate) i32); 2695 impl BuildMicromapModeEXT { 2696 #[inline] from_raw(x: i32) -> Self2697 pub const fn from_raw(x: i32) -> Self { 2698 Self(x) 2699 } 2700 #[inline] as_raw(self) -> i322701 pub const fn as_raw(self) -> i32 { 2702 self.0 2703 } 2704 } 2705 impl BuildMicromapModeEXT { 2706 pub const BUILD: Self = Self(0); 2707 } 2708 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2709 #[repr(transparent)] 2710 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpacityMicromapFormatEXT.html>"] 2711 pub struct OpacityMicromapFormatEXT(pub(crate) i32); 2712 impl OpacityMicromapFormatEXT { 2713 #[inline] from_raw(x: i32) -> Self2714 pub const fn from_raw(x: i32) -> Self { 2715 Self(x) 2716 } 2717 #[inline] as_raw(self) -> i322718 pub const fn as_raw(self) -> i32 { 2719 self.0 2720 } 2721 } 2722 impl OpacityMicromapFormatEXT { 2723 pub const TYPE_2_STATE: Self = Self(1); 2724 pub const TYPE_4_STATE: Self = Self(2); 2725 } 2726 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2727 #[repr(transparent)] 2728 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkOpacityMicromapSpecialIndexEXT.html>"] 2729 pub struct OpacityMicromapSpecialIndexEXT(pub(crate) i32); 2730 impl OpacityMicromapSpecialIndexEXT { 2731 #[inline] from_raw(x: i32) -> Self2732 pub const fn from_raw(x: i32) -> Self { 2733 Self(x) 2734 } 2735 #[inline] as_raw(self) -> i322736 pub const fn as_raw(self) -> i32 { 2737 self.0 2738 } 2739 } 2740 impl OpacityMicromapSpecialIndexEXT { 2741 pub const FULLY_TRANSPARENT: Self = Self(-1); 2742 pub const FULLY_OPAQUE: Self = Self(-2); 2743 pub const FULLY_UNKNOWN_TRANSPARENT: Self = Self(-3); 2744 pub const FULLY_UNKNOWN_OPAQUE: Self = Self(-4); 2745 } 2746 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2747 #[repr(transparent)] 2748 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceFaultAddressTypeEXT.html>"] 2749 pub struct DeviceFaultAddressTypeEXT(pub(crate) i32); 2750 impl DeviceFaultAddressTypeEXT { 2751 #[inline] from_raw(x: i32) -> Self2752 pub const fn from_raw(x: i32) -> Self { 2753 Self(x) 2754 } 2755 #[inline] as_raw(self) -> i322756 pub const fn as_raw(self) -> i32 { 2757 self.0 2758 } 2759 } 2760 impl DeviceFaultAddressTypeEXT { 2761 #[doc = "Currently unused"] 2762 pub const NONE: Self = Self(0); 2763 pub const READ_INVALID: Self = Self(1); 2764 pub const WRITE_INVALID: Self = Self(2); 2765 pub const EXECUTE_INVALID: Self = Self(3); 2766 pub const INSTRUCTION_POINTER_UNKNOWN: Self = Self(4); 2767 pub const INSTRUCTION_POINTER_INVALID: Self = Self(5); 2768 pub const INSTRUCTION_POINTER_FAULT: Self = Self(6); 2769 } 2770 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2771 #[repr(transparent)] 2772 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDeviceFaultVendorBinaryHeaderVersionEXT.html>"] 2773 pub struct DeviceFaultVendorBinaryHeaderVersionEXT(pub(crate) i32); 2774 impl DeviceFaultVendorBinaryHeaderVersionEXT { 2775 #[inline] from_raw(x: i32) -> Self2776 pub const fn from_raw(x: i32) -> Self { 2777 Self(x) 2778 } 2779 #[inline] as_raw(self) -> i322780 pub const fn as_raw(self) -> i32 { 2781 self.0 2782 } 2783 } 2784 impl DeviceFaultVendorBinaryHeaderVersionEXT { 2785 pub const ONE: Self = Self(1); 2786 } 2787 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2788 #[repr(transparent)] 2789 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkDisplacementMicromapFormatNV.html>"] 2790 pub struct DisplacementMicromapFormatNV(pub(crate) i32); 2791 impl DisplacementMicromapFormatNV { 2792 #[inline] from_raw(x: i32) -> Self2793 pub const fn from_raw(x: i32) -> Self { 2794 Self(x) 2795 } 2796 #[inline] as_raw(self) -> i322797 pub const fn as_raw(self) -> i32 { 2798 self.0 2799 } 2800 } 2801 impl DisplacementMicromapFormatNV { 2802 pub const TYPE_64_TRIANGLES_64_BYTES: Self = Self(1); 2803 pub const TYPE_256_TRIANGLES_128_BYTES: Self = Self(2); 2804 pub const TYPE_1024_TRIANGLES_128_BYTES: Self = Self(3); 2805 } 2806 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2807 #[repr(transparent)] 2808 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkShaderCodeTypeEXT.html>"] 2809 pub struct ShaderCodeTypeEXT(pub(crate) i32); 2810 impl ShaderCodeTypeEXT { 2811 #[inline] from_raw(x: i32) -> Self2812 pub const fn from_raw(x: i32) -> Self { 2813 Self(x) 2814 } 2815 #[inline] as_raw(self) -> i322816 pub const fn as_raw(self) -> i32 { 2817 self.0 2818 } 2819 } 2820 impl ShaderCodeTypeEXT { 2821 pub const BINARY: Self = Self(0); 2822 pub const SPIRV: Self = Self(1); 2823 } 2824 impl fmt::Debug for ObjectType { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2825 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 2826 let name = match *self { 2827 Self::UNKNOWN => Some("UNKNOWN"), 2828 Self::INSTANCE => Some("INSTANCE"), 2829 Self::PHYSICAL_DEVICE => Some("PHYSICAL_DEVICE"), 2830 Self::DEVICE => Some("DEVICE"), 2831 Self::QUEUE => Some("QUEUE"), 2832 Self::SEMAPHORE => Some("SEMAPHORE"), 2833 Self::COMMAND_BUFFER => Some("COMMAND_BUFFER"), 2834 Self::FENCE => Some("FENCE"), 2835 Self::DEVICE_MEMORY => Some("DEVICE_MEMORY"), 2836 Self::BUFFER => Some("BUFFER"), 2837 Self::IMAGE => Some("IMAGE"), 2838 Self::EVENT => Some("EVENT"), 2839 Self::QUERY_POOL => Some("QUERY_POOL"), 2840 Self::BUFFER_VIEW => Some("BUFFER_VIEW"), 2841 Self::IMAGE_VIEW => Some("IMAGE_VIEW"), 2842 Self::SHADER_MODULE => Some("SHADER_MODULE"), 2843 Self::PIPELINE_CACHE => Some("PIPELINE_CACHE"), 2844 Self::PIPELINE_LAYOUT => Some("PIPELINE_LAYOUT"), 2845 Self::RENDER_PASS => Some("RENDER_PASS"), 2846 Self::PIPELINE => Some("PIPELINE"), 2847 Self::DESCRIPTOR_SET_LAYOUT => Some("DESCRIPTOR_SET_LAYOUT"), 2848 Self::SAMPLER => Some("SAMPLER"), 2849 Self::DESCRIPTOR_POOL => Some("DESCRIPTOR_POOL"), 2850 Self::DESCRIPTOR_SET => Some("DESCRIPTOR_SET"), 2851 Self::FRAMEBUFFER => Some("FRAMEBUFFER"), 2852 Self::COMMAND_POOL => Some("COMMAND_POOL"), 2853 Self::SURFACE_KHR => Some("SURFACE_KHR"), 2854 Self::SWAPCHAIN_KHR => Some("SWAPCHAIN_KHR"), 2855 Self::DISPLAY_KHR => Some("DISPLAY_KHR"), 2856 Self::DISPLAY_MODE_KHR => Some("DISPLAY_MODE_KHR"), 2857 Self::DEBUG_REPORT_CALLBACK_EXT => Some("DEBUG_REPORT_CALLBACK_EXT"), 2858 Self::VIDEO_SESSION_KHR => Some("VIDEO_SESSION_KHR"), 2859 Self::VIDEO_SESSION_PARAMETERS_KHR => Some("VIDEO_SESSION_PARAMETERS_KHR"), 2860 Self::CU_MODULE_NVX => Some("CU_MODULE_NVX"), 2861 Self::CU_FUNCTION_NVX => Some("CU_FUNCTION_NVX"), 2862 Self::DEBUG_UTILS_MESSENGER_EXT => Some("DEBUG_UTILS_MESSENGER_EXT"), 2863 Self::ACCELERATION_STRUCTURE_KHR => Some("ACCELERATION_STRUCTURE_KHR"), 2864 Self::VALIDATION_CACHE_EXT => Some("VALIDATION_CACHE_EXT"), 2865 Self::ACCELERATION_STRUCTURE_NV => Some("ACCELERATION_STRUCTURE_NV"), 2866 Self::PERFORMANCE_CONFIGURATION_INTEL => Some("PERFORMANCE_CONFIGURATION_INTEL"), 2867 Self::DEFERRED_OPERATION_KHR => Some("DEFERRED_OPERATION_KHR"), 2868 Self::INDIRECT_COMMANDS_LAYOUT_NV => Some("INDIRECT_COMMANDS_LAYOUT_NV"), 2869 Self::BUFFER_COLLECTION_FUCHSIA => Some("BUFFER_COLLECTION_FUCHSIA"), 2870 Self::MICROMAP_EXT => Some("MICROMAP_EXT"), 2871 Self::OPTICAL_FLOW_SESSION_NV => Some("OPTICAL_FLOW_SESSION_NV"), 2872 Self::SHADER_EXT => Some("SHADER_EXT"), 2873 Self::SAMPLER_YCBCR_CONVERSION => Some("SAMPLER_YCBCR_CONVERSION"), 2874 Self::DESCRIPTOR_UPDATE_TEMPLATE => Some("DESCRIPTOR_UPDATE_TEMPLATE"), 2875 Self::PRIVATE_DATA_SLOT => Some("PRIVATE_DATA_SLOT"), 2876 _ => None, 2877 }; 2878 if let Some(x) = name { 2879 f.write_str(x) 2880 } else { 2881 self.0.fmt(f) 2882 } 2883 } 2884 } 2885 impl fmt::Debug for Result { fmt(&self, f: &mut fmt::Formatter) -> fmt::Result2886 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { 2887 let name = match *self { 2888 Self::SUCCESS => Some("SUCCESS"), 2889 Self::NOT_READY => Some("NOT_READY"), 2890 Self::TIMEOUT => Some("TIMEOUT"), 2891 Self::EVENT_SET => Some("EVENT_SET"), 2892 Self::EVENT_RESET => Some("EVENT_RESET"), 2893 Self::INCOMPLETE => Some("INCOMPLETE"), 2894 Self::ERROR_OUT_OF_HOST_MEMORY => Some("ERROR_OUT_OF_HOST_MEMORY"), 2895 Self::ERROR_OUT_OF_DEVICE_MEMORY => Some("ERROR_OUT_OF_DEVICE_MEMORY"), 2896 Self::ERROR_INITIALIZATION_FAILED => Some("ERROR_INITIALIZATION_FAILED"), 2897 Self::ERROR_DEVICE_LOST => Some("ERROR_DEVICE_LOST"), 2898 Self::ERROR_MEMORY_MAP_FAILED => Some("ERROR_MEMORY_MAP_FAILED"), 2899 Self::ERROR_LAYER_NOT_PRESENT => Some("ERROR_LAYER_NOT_PRESENT"), 2900 Self::ERROR_EXTENSION_NOT_PRESENT => Some("ERROR_EXTENSION_NOT_PRESENT"), 2901 Self::ERROR_FEATURE_NOT_PRESENT => Some("ERROR_FEATURE_NOT_PRESENT"), 2902 Self::ERROR_INCOMPATIBLE_DRIVER => Some("ERROR_INCOMPATIBLE_DRIVER"), 2903 Self::ERROR_TOO_MANY_OBJECTS => Some("ERROR_TOO_MANY_OBJECTS"), 2904 Self::ERROR_FORMAT_NOT_SUPPORTED => Some("ERROR_FORMAT_NOT_SUPPORTED"), 2905 Self::ERROR_FRAGMENTED_POOL => Some("ERROR_FRAGMENTED_POOL"), 2906 Self::ERROR_UNKNOWN => Some("ERROR_UNKNOWN"), 2907 Self::ERROR_SURFACE_LOST_KHR => Some("ERROR_SURFACE_LOST_KHR"), 2908 Self::ERROR_NATIVE_WINDOW_IN_USE_KHR => Some("ERROR_NATIVE_WINDOW_IN_USE_KHR"), 2909 Self::SUBOPTIMAL_KHR => Some("SUBOPTIMAL_KHR"), 2910 Self::ERROR_OUT_OF_DATE_KHR => Some("ERROR_OUT_OF_DATE_KHR"), 2911 Self::ERROR_INCOMPATIBLE_DISPLAY_KHR => Some("ERROR_INCOMPATIBLE_DISPLAY_KHR"), 2912 Self::ERROR_VALIDATION_FAILED_EXT => Some("ERROR_VALIDATION_FAILED_EXT"), 2913 Self::ERROR_INVALID_SHADER_NV => Some("ERROR_INVALID_SHADER_NV"), 2914 Self::ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR => { 2915 Some("ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR") 2916 } 2917 Self::ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR => { 2918 Some("ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR") 2919 } 2920 Self::ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR => { 2921 Some("ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR") 2922 } 2923 Self::ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR => { 2924 Some("ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR") 2925 } 2926 Self::ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR => { 2927 Some("ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR") 2928 } 2929 Self::ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR => { 2930 Some("ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR") 2931 } 2932 Self::ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT => { 2933 Some("ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT") 2934 } 2935 Self::ERROR_NOT_PERMITTED_KHR => Some("ERROR_NOT_PERMITTED_KHR"), 2936 Self::ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT => { 2937 Some("ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT") 2938 } 2939 Self::THREAD_IDLE_KHR => Some("THREAD_IDLE_KHR"), 2940 Self::THREAD_DONE_KHR => Some("THREAD_DONE_KHR"), 2941 Self::OPERATION_DEFERRED_KHR => Some("OPERATION_DEFERRED_KHR"), 2942 Self::OPERATION_NOT_DEFERRED_KHR => Some("OPERATION_NOT_DEFERRED_KHR"), 2943 Self::ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR => { 2944 Some("ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR") 2945 } 2946 Self::ERROR_COMPRESSION_EXHAUSTED_EXT => Some("ERROR_COMPRESSION_EXHAUSTED_EXT"), 2947 Self::ERROR_INCOMPATIBLE_SHADER_BINARY_EXT => { 2948 Some("ERROR_INCOMPATIBLE_SHADER_BINARY_EXT") 2949 } 2950 Self::ERROR_OUT_OF_POOL_MEMORY => Some("ERROR_OUT_OF_POOL_MEMORY"), 2951 Self::ERROR_INVALID_EXTERNAL_HANDLE => Some("ERROR_INVALID_EXTERNAL_HANDLE"), 2952 Self::ERROR_FRAGMENTATION => Some("ERROR_FRAGMENTATION"), 2953 Self::ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS => { 2954 Some("ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS") 2955 } 2956 Self::PIPELINE_COMPILE_REQUIRED => Some("PIPELINE_COMPILE_REQUIRED"), 2957 _ => None, 2958 }; 2959 if let Some(x) = name { 2960 f.write_str(x) 2961 } else { 2962 self.0.fmt(f) 2963 } 2964 } 2965 } 2966