webgpu.yml (117385B)
1 copyright: | 2 Copyright 2019-2023 WebGPU-Native developers 3 4 SPDX-License-Identifier: BSD-3-Clause 5 name: webgpu 6 enum_prefix: '0x0000' 7 constants: 8 - name: array_layer_count_undefined 9 value: uint32_max 10 doc: | 11 TODO 12 - name: copy_stride_undefined 13 value: uint32_max 14 doc: | 15 TODO 16 - name: depth_slice_undefined 17 value: uint32_max 18 doc: | 19 TODO 20 - name: limit_u32_undefined 21 value: uint32_max 22 doc: | 23 TODO 24 - name: limit_u64_undefined 25 value: uint64_max 26 doc: | 27 TODO 28 - name: mip_level_count_undefined 29 value: uint32_max 30 doc: | 31 TODO 32 - name: query_set_index_undefined 33 value: uint32_max 34 doc: | 35 TODO 36 - name: whole_map_size 37 value: usize_max 38 doc: | 39 TODO 40 - name: whole_size 41 value: uint64_max 42 doc: | 43 TODO 44 typedefs: [] 45 enums: 46 - name: adapter_type 47 doc: | 48 TODO 49 entries: 50 - null 51 - name: discrete_GPU 52 doc: | 53 TODO 54 - name: integrated_GPU 55 doc: | 56 TODO 57 - name: CPU 58 doc: | 59 TODO 60 - name: unknown 61 doc: | 62 TODO 63 - name: address_mode 64 doc: | 65 TODO 66 entries: 67 - name: undefined 68 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 69 - name: clamp_to_edge 70 doc: | 71 TODO 72 - name: repeat 73 doc: | 74 TODO 75 - name: mirror_repeat 76 doc: | 77 TODO 78 - name: backend_type 79 doc: | 80 TODO 81 entries: 82 - name: undefined 83 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 84 - name: "null" 85 doc: | 86 TODO 87 - name: WebGPU 88 doc: | 89 TODO 90 - name: D3D11 91 doc: | 92 TODO 93 - name: D3D12 94 doc: | 95 TODO 96 - name: metal 97 doc: | 98 TODO 99 - name: vulkan 100 doc: | 101 TODO 102 - name: openGL 103 doc: | 104 TODO 105 - name: openGLES 106 doc: | 107 TODO 108 - name: blend_factor 109 doc: | 110 TODO 111 entries: 112 - name: undefined 113 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 114 - name: zero 115 doc: | 116 TODO 117 - name: one 118 doc: | 119 TODO 120 - name: src 121 doc: | 122 TODO 123 - name: one_minus_src 124 doc: | 125 TODO 126 - name: src_alpha 127 doc: | 128 TODO 129 - name: one_minus_src_alpha 130 doc: | 131 TODO 132 - name: dst 133 doc: | 134 TODO 135 - name: one_minus_dst 136 doc: | 137 TODO 138 - name: dst_alpha 139 doc: | 140 TODO 141 - name: one_minus_dst_alpha 142 doc: | 143 TODO 144 - name: src_alpha_saturated 145 doc: | 146 TODO 147 - name: constant 148 doc: | 149 TODO 150 - name: one_minus_constant 151 doc: | 152 TODO 153 - name: src1 154 doc: | 155 TODO 156 - name: one_minus_src1 157 doc: | 158 TODO 159 - name: src1_alpha 160 doc: | 161 TODO 162 - name: one_minus_src1_alpha 163 doc: | 164 TODO 165 - name: blend_operation 166 doc: | 167 TODO 168 entries: 169 - name: undefined 170 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 171 - name: add 172 doc: | 173 TODO 174 - name: subtract 175 doc: | 176 TODO 177 - name: reverse_subtract 178 doc: | 179 TODO 180 - name: min 181 doc: | 182 TODO 183 - name: max 184 doc: | 185 TODO 186 - name: buffer_binding_type 187 doc: | 188 TODO 189 entries: 190 - name: binding_not_used 191 doc: | 192 Indicates that this @ref WGPUBufferBindingLayout member of 193 its parent @ref WGPUBindGroupLayoutEntry is not used. 194 (See also @ref SentinelValues.) 195 - name: undefined 196 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 197 - name: uniform 198 doc: | 199 TODO 200 - name: storage 201 doc: | 202 TODO 203 - name: read_only_storage 204 doc: | 205 TODO 206 - name: buffer_map_state 207 doc: | 208 TODO 209 entries: 210 - null 211 - name: unmapped 212 doc: | 213 TODO 214 - name: pending 215 doc: | 216 TODO 217 - name: mapped 218 doc: | 219 TODO 220 - name: callback_mode 221 doc: The callback mode controls how a callback for an asynchronous operation may be fired. See @ref Asynchronous-Operations for how these are used. 222 entries: 223 - null 224 - name: wait_any_only 225 doc: | 226 Callbacks created with `WGPUCallbackMode_WaitAnyOnly`: 227 - fire when the asynchronous operation's future is passed to a call to `::wgpuInstanceWaitAny` 228 AND the operation has already completed or it completes inside the call to `::wgpuInstanceWaitAny`. 229 - name: allow_process_events 230 doc: | 231 Callbacks created with `WGPUCallbackMode_AllowProcessEvents`: 232 - fire for the same reasons as callbacks created with `WGPUCallbackMode_WaitAnyOnly` 233 - fire inside a call to `::wgpuInstanceProcessEvents` if the asynchronous operation is complete. 234 - name: allow_spontaneous 235 doc: | 236 Callbacks created with `WGPUCallbackMode_AllowSpontaneous`: 237 - fire for the same reasons as callbacks created with `WGPUCallbackMode_AllowProcessEvents` 238 - **may** fire spontaneously on an arbitrary or application thread, when the WebGPU implementations discovers that the asynchronous operation is complete. 239 240 Implementations _should_ fire spontaneous callbacks as soon as possible. 241 242 @note Because spontaneous callbacks may fire at an arbitrary time on an arbitrary thread, applications should take extra care when acquiring locks or mutating state inside the callback. It undefined behavior to re-entrantly call into the webgpu.h API if the callback fires while inside the callstack of another webgpu.h function that is not `wgpuInstanceWaitAny` or `wgpuInstanceProcessEvents`. 243 - name: compare_function 244 doc: | 245 TODO 246 entries: 247 - name: undefined 248 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 249 - name: never 250 doc: | 251 TODO 252 - name: less 253 doc: | 254 TODO 255 - name: equal 256 doc: | 257 TODO 258 - name: less_equal 259 doc: | 260 TODO 261 - name: greater 262 doc: | 263 TODO 264 - name: not_equal 265 doc: | 266 TODO 267 - name: greater_equal 268 doc: | 269 TODO 270 - name: always 271 doc: | 272 TODO 273 - name: compilation_info_request_status 274 doc: | 275 TODO 276 entries: 277 - null 278 - name: success 279 doc: | 280 TODO 281 - name: instance_dropped 282 doc: | 283 TODO 284 - name: error 285 doc: | 286 TODO 287 - name: unknown 288 doc: | 289 TODO 290 - name: compilation_message_type 291 doc: | 292 TODO 293 entries: 294 - null 295 - name: error 296 doc: | 297 TODO 298 - name: warning 299 doc: | 300 TODO 301 - name: info 302 doc: | 303 TODO 304 - name: composite_alpha_mode 305 doc: Describes how frames are composited with other contents on the screen when `::wgpuSurfacePresent` is called. 306 entries: 307 - name: auto 308 doc: Lets the WebGPU implementation choose the best mode (supported, and with the best performance) between @ref WGPUCompositeAlphaMode_Opaque or @ref WGPUCompositeAlphaMode_Inherit. 309 - name: opaque 310 doc: The alpha component of the image is ignored and teated as if it is always 1.0. 311 - name: premultiplied 312 doc: The alpha component is respected and non-alpha components are assumed to be already multiplied with the alpha component. For example, (0.5, 0, 0, 0.5) is semi-transparent bright red. 313 - name: unpremultiplied 314 doc: The alpha component is respected and non-alpha components are assumed to NOT be already multiplied with the alpha component. For example, (1.0, 0, 0, 0.5) is semi-transparent bright red. 315 - name: inherit 316 doc: The handling of the alpha component is unknown to WebGPU and should be handled by the application using system-specific APIs. This mode may be unavailable (for example on Wasm). 317 - name: create_pipeline_async_status 318 doc: | 319 TODO 320 entries: 321 - null 322 - name: success 323 doc: | 324 TODO 325 - name: instance_dropped 326 doc: | 327 TODO 328 - name: validation_error 329 doc: | 330 TODO 331 - name: internal_error 332 doc: | 333 TODO 334 - name: unknown 335 doc: | 336 TODO 337 - name: cull_mode 338 doc: | 339 TODO 340 entries: 341 - name: undefined 342 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 343 - name: none 344 doc: | 345 TODO 346 - name: front 347 doc: | 348 TODO 349 - name: back 350 doc: | 351 TODO 352 - name: device_lost_reason 353 doc: | 354 TODO 355 entries: 356 - null 357 - name: unknown 358 doc: | 359 TODO 360 - name: destroyed 361 doc: | 362 TODO 363 - name: instance_dropped 364 doc: | 365 TODO 366 - name: failed_creation 367 doc: | 368 TODO 369 - name: error_filter 370 doc: | 371 TODO 372 entries: 373 - null 374 - name: validation 375 doc: | 376 TODO 377 - name: out_of_memory 378 doc: | 379 TODO 380 - name: internal 381 doc: | 382 TODO 383 - name: error_type 384 doc: | 385 TODO 386 entries: 387 - null 388 - name: no_error 389 doc: | 390 TODO 391 - name: validation 392 doc: | 393 TODO 394 - name: out_of_memory 395 doc: | 396 TODO 397 - name: internal 398 doc: | 399 TODO 400 - name: unknown 401 doc: | 402 TODO 403 - name: feature_level 404 doc: | 405 See @ref WGPURequestAdapterOptions::featureLevel. 406 entries: 407 - null 408 - name: compatibility 409 doc: | 410 "Compatibility" profile which can be supported on OpenGL ES 3.1. 411 - name: core 412 doc: | 413 "Core" profile which can be supported on Vulkan/Metal/D3D12. 414 - name: feature_name 415 doc: | 416 TODO 417 entries: 418 - name: undefined 419 doc: | 420 TODO 421 - name: depth_clip_control 422 doc: | 423 TODO 424 - name: depth32_float_stencil8 425 doc: | 426 TODO 427 - name: timestamp_query 428 doc: | 429 TODO 430 - name: texture_compression_BC 431 doc: | 432 TODO 433 - name: texture_compression_BC_sliced_3D 434 doc: | 435 TODO 436 - name: texture_compression_ETC2 437 doc: | 438 TODO 439 - name: texture_compression_ASTC 440 doc: | 441 TODO 442 - name: texture_compression_ASTC_sliced_3D 443 doc: | 444 TODO 445 - name: indirect_first_instance 446 doc: | 447 TODO 448 - name: shader_f16 449 doc: | 450 TODO 451 - name: RG11B10_ufloat_renderable 452 doc: | 453 TODO 454 - name: BGRA8_unorm_storage 455 doc: | 456 TODO 457 - name: float32_filterable 458 doc: | 459 TODO 460 - name: float32_blendable 461 doc: | 462 TODO 463 - name: clip_distances 464 doc: | 465 TODO 466 - name: dual_source_blending 467 doc: | 468 TODO 469 - name: filter_mode 470 doc: | 471 TODO 472 entries: 473 - name: undefined 474 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 475 - name: nearest 476 doc: | 477 TODO 478 - name: linear 479 doc: | 480 TODO 481 - name: front_face 482 doc: | 483 TODO 484 entries: 485 - name: undefined 486 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 487 - name: CCW 488 doc: | 489 TODO 490 - name: CW 491 doc: | 492 TODO 493 - name: index_format 494 doc: | 495 TODO 496 entries: 497 - name: undefined 498 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 499 - name: uint16 500 doc: | 501 TODO 502 - name: uint32 503 doc: | 504 TODO 505 - name: load_op 506 doc: | 507 TODO 508 entries: 509 - name: undefined 510 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 511 - name: load 512 doc: | 513 TODO 514 - name: clear 515 doc: | 516 TODO 517 - name: map_async_status 518 doc: | 519 TODO 520 entries: 521 - null 522 - name: success 523 doc: | 524 TODO 525 - name: instance_dropped 526 doc: | 527 TODO 528 - name: error 529 doc: | 530 TODO 531 - name: aborted 532 doc: | 533 TODO 534 - name: unknown 535 doc: | 536 TODO 537 - name: mipmap_filter_mode 538 doc: | 539 TODO 540 entries: 541 - name: undefined 542 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 543 - name: nearest 544 doc: | 545 TODO 546 - name: linear 547 doc: | 548 TODO 549 - name: optional_bool 550 doc: | 551 TODO 552 entries: 553 - name: "false" 554 doc: | 555 TODO 556 - name: "true" 557 doc: | 558 TODO 559 - name: undefined 560 doc: | 561 TODO 562 - name: pop_error_scope_status 563 doc: | 564 TODO 565 entries: 566 - null 567 - name: success 568 doc: | 569 The error scope stack was successfully popped and a result was reported. 570 - name: instance_dropped 571 doc: | 572 TODO 573 - name: empty_stack 574 doc: | 575 The error scope stack could not be popped, because it was empty. 576 - name: power_preference 577 doc: | 578 TODO 579 entries: 580 - name: undefined 581 doc: No preference. (See also @ref SentinelValues.) 582 - name: low_power 583 doc: | 584 TODO 585 - name: high_performance 586 doc: | 587 TODO 588 - name: present_mode 589 doc: Describes when and in which order frames are presented on the screen when `::wgpuSurfacePresent` is called. 590 entries: 591 - name: undefined 592 doc: | 593 Present mode is not specified. Use the default. 594 - name: fifo 595 doc: | 596 The presentation of the image to the user waits for the next vertical blanking period to update in a first-in, first-out manner. 597 Tearing cannot be observed and frame-loop will be limited to the display's refresh rate. 598 This is the only mode that's always available. 599 - name: fifo_relaxed 600 doc: | 601 The presentation of the image to the user tries to wait for the next vertical blanking period but may decide to not wait if a frame is presented late. 602 Tearing can sometimes be observed but late-frame don't produce a full-frame stutter in the presentation. 603 This is still a first-in, first-out mechanism so a frame-loop will be limited to the display's refresh rate. 604 - name: immediate 605 doc: | 606 The presentation of the image to the user is updated immediately without waiting for a vertical blank. 607 Tearing can be observed but latency is minimized. 608 - name: mailbox 609 doc: | 610 The presentation of the image to the user waits for the next vertical blanking period to update to the latest provided image. 611 Tearing cannot be observed and a frame-loop is not limited to the display's refresh rate. 612 - name: primitive_topology 613 doc: | 614 TODO 615 entries: 616 - name: undefined 617 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 618 - name: point_list 619 doc: | 620 TODO 621 - name: line_list 622 doc: | 623 TODO 624 - name: line_strip 625 doc: | 626 TODO 627 - name: triangle_list 628 doc: | 629 TODO 630 - name: triangle_strip 631 doc: | 632 TODO 633 - name: query_type 634 doc: | 635 TODO 636 entries: 637 - null 638 - name: occlusion 639 doc: | 640 TODO 641 - name: timestamp 642 doc: | 643 TODO 644 - name: queue_work_done_status 645 doc: | 646 TODO 647 entries: 648 - null 649 - name: success 650 doc: | 651 TODO 652 - name: instance_dropped 653 doc: | 654 TODO 655 - name: error 656 doc: | 657 TODO 658 - name: unknown 659 doc: | 660 TODO 661 - name: request_adapter_status 662 doc: | 663 TODO 664 entries: 665 - null 666 - name: success 667 doc: | 668 TODO 669 - name: instance_dropped 670 doc: | 671 TODO 672 - name: unavailable 673 doc: | 674 TODO 675 - name: error 676 doc: | 677 TODO 678 - name: unknown 679 doc: | 680 TODO 681 - name: request_device_status 682 doc: | 683 TODO 684 entries: 685 - null 686 - name: success 687 doc: | 688 TODO 689 - name: instance_dropped 690 doc: | 691 TODO 692 - name: error 693 doc: | 694 TODO 695 - name: unknown 696 doc: | 697 TODO 698 - name: s_type 699 doc: | 700 TODO 701 entries: 702 - null 703 - name: shader_source_SPIRV 704 doc: | 705 TODO 706 - name: shader_source_WGSL 707 doc: | 708 TODO 709 - name: render_pass_max_draw_count 710 doc: | 711 TODO 712 # TODO(#214): Move all of the surface sources into block 0x0001 713 - name: surface_source_metal_layer 714 doc: | 715 TODO 716 - name: surface_source_windows_HWND 717 doc: | 718 TODO 719 - name: surface_source_xlib_window 720 doc: | 721 TODO 722 - name: surface_source_wayland_surface 723 doc: | 724 TODO 725 - name: surface_source_android_native_window 726 doc: | 727 TODO 728 - name: surface_source_XCB_window 729 doc: | 730 TODO 731 - name: sampler_binding_type 732 doc: | 733 TODO 734 entries: 735 - name: binding_not_used 736 doc: | 737 Indicates that this @ref WGPUSamplerBindingLayout member of 738 its parent @ref WGPUBindGroupLayoutEntry is not used. 739 (See also @ref SentinelValues.) 740 - name: undefined 741 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 742 - name: filtering 743 doc: | 744 TODO 745 - name: non_filtering 746 doc: | 747 TODO 748 - name: comparison 749 doc: | 750 TODO 751 - name: status 752 doc: | 753 Status code returned (synchronously) from many operations. Generally 754 indicates an invalid input like an unknown enum value or @ref OutStructChainError. 755 Read the function's documentation for specific error conditions. 756 entries: 757 - null 758 - name: success 759 doc: "" 760 - name: error 761 doc: "" 762 - name: stencil_operation 763 doc: | 764 TODO 765 entries: 766 - name: undefined 767 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 768 - name: keep 769 doc: | 770 TODO 771 - name: zero 772 doc: | 773 TODO 774 - name: replace 775 doc: | 776 TODO 777 - name: invert 778 doc: | 779 TODO 780 - name: increment_clamp 781 doc: | 782 TODO 783 - name: decrement_clamp 784 doc: | 785 TODO 786 - name: increment_wrap 787 doc: | 788 TODO 789 - name: decrement_wrap 790 doc: | 791 TODO 792 - name: storage_texture_access 793 doc: | 794 TODO 795 entries: 796 - name: binding_not_used 797 doc: | 798 Indicates that this @ref WGPUStorageTextureBindingLayout member of 799 its parent @ref WGPUBindGroupLayoutEntry is not used. 800 (See also @ref SentinelValues.) 801 - name: undefined 802 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 803 - name: write_only 804 doc: | 805 TODO 806 - name: read_only 807 doc: | 808 TODO 809 - name: read_write 810 doc: | 811 TODO 812 - name: store_op 813 doc: | 814 TODO 815 entries: 816 - name: undefined 817 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 818 - name: store 819 doc: | 820 TODO 821 - name: discard 822 doc: | 823 TODO 824 - name: surface_get_current_texture_status 825 doc: The status enum for `::wgpuSurfaceGetCurrentTexture`. 826 entries: 827 - null 828 - name: success_optimal 829 doc: Yay! Everything is good and we can render this frame. 830 - name: success_suboptimal 831 doc: Still OK - the surface can present the frame, but in a suboptimal way. The surface may need reconfiguration. 832 - name: timeout 833 doc: Some operation timed out while trying to acquire the frame. 834 - name: outdated 835 doc: The surface is too different to be used, compared to when it was originally created. 836 - name: lost 837 doc: The connection to whatever owns the surface was lost. 838 - name: out_of_memory 839 doc: The system ran out of memory. 840 - name: device_lost 841 doc: The @ref WGPUDevice configured on the @ref WGPUSurface was lost. 842 - name: error 843 doc: The surface is not configured, or there was an @ref OutStructChainError. 844 - name: texture_aspect 845 doc: | 846 TODO 847 entries: 848 - name: undefined 849 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 850 - name: all 851 doc: | 852 TODO 853 - name: stencil_only 854 doc: | 855 TODO 856 - name: depth_only 857 doc: | 858 TODO 859 - name: texture_dimension 860 doc: | 861 TODO 862 entries: 863 - name: undefined 864 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 865 - name: 1D 866 doc: | 867 TODO 868 - name: 2D 869 doc: | 870 TODO 871 - name: 3D 872 doc: | 873 TODO 874 - name: texture_format 875 doc: | 876 TODO 877 entries: 878 - name: undefined 879 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 880 - name: R8_unorm 881 doc: | 882 TODO 883 - name: R8_snorm 884 doc: | 885 TODO 886 - name: R8_uint 887 doc: | 888 TODO 889 - name: R8_sint 890 doc: | 891 TODO 892 - name: R16_uint 893 doc: | 894 TODO 895 - name: R16_sint 896 doc: | 897 TODO 898 - name: R16_float 899 doc: | 900 TODO 901 - name: RG8_unorm 902 doc: | 903 TODO 904 - name: RG8_snorm 905 doc: | 906 TODO 907 - name: RG8_uint 908 doc: | 909 TODO 910 - name: RG8_sint 911 doc: | 912 TODO 913 - name: R32_float 914 doc: | 915 TODO 916 - name: R32_uint 917 doc: | 918 TODO 919 - name: R32_sint 920 doc: | 921 TODO 922 - name: RG16_uint 923 doc: | 924 TODO 925 - name: RG16_sint 926 doc: | 927 TODO 928 - name: RG16_float 929 doc: | 930 TODO 931 - name: RGBA8_unorm 932 doc: | 933 TODO 934 - name: RGBA8_unorm_srgb 935 doc: | 936 TODO 937 - name: RGBA8_snorm 938 doc: | 939 TODO 940 - name: RGBA8_uint 941 doc: | 942 TODO 943 - name: RGBA8_sint 944 doc: | 945 TODO 946 - name: BGRA8_unorm 947 doc: | 948 TODO 949 - name: BGRA8_unorm_srgb 950 doc: | 951 TODO 952 - name: RGB10_A2_uint 953 doc: | 954 TODO 955 - name: RGB10_A2_unorm 956 doc: | 957 TODO 958 - name: RG11_B10_ufloat 959 doc: | 960 TODO 961 - name: RGB9_E5_ufloat 962 doc: | 963 TODO 964 - name: RG32_float 965 doc: | 966 TODO 967 - name: RG32_uint 968 doc: | 969 TODO 970 - name: RG32_sint 971 doc: | 972 TODO 973 - name: RGBA16_uint 974 doc: | 975 TODO 976 - name: RGBA16_sint 977 doc: | 978 TODO 979 - name: RGBA16_float 980 doc: | 981 TODO 982 - name: RGBA32_float 983 doc: | 984 TODO 985 - name: RGBA32_uint 986 doc: | 987 TODO 988 - name: RGBA32_sint 989 doc: | 990 TODO 991 - name: stencil8 992 doc: | 993 TODO 994 - name: depth16_unorm 995 doc: | 996 TODO 997 - name: depth24_plus 998 doc: | 999 TODO 1000 - name: depth24_plus_stencil8 1001 doc: | 1002 TODO 1003 - name: depth32_float 1004 doc: | 1005 TODO 1006 - name: depth32_float_stencil8 1007 doc: | 1008 TODO 1009 - name: BC1_RGBA_unorm 1010 doc: | 1011 TODO 1012 - name: BC1_RGBA_unorm_srgb 1013 doc: | 1014 TODO 1015 - name: BC2_RGBA_unorm 1016 doc: | 1017 TODO 1018 - name: BC2_RGBA_unorm_srgb 1019 doc: | 1020 TODO 1021 - name: BC3_RGBA_unorm 1022 doc: | 1023 TODO 1024 - name: BC3_RGBA_unorm_srgb 1025 doc: | 1026 TODO 1027 - name: BC4_R_unorm 1028 doc: | 1029 TODO 1030 - name: BC4_R_snorm 1031 doc: | 1032 TODO 1033 - name: BC5_RG_unorm 1034 doc: | 1035 TODO 1036 - name: BC5_RG_snorm 1037 doc: | 1038 TODO 1039 - name: BC6H_RGB_ufloat 1040 doc: | 1041 TODO 1042 - name: BC6H_RGB_float 1043 doc: | 1044 TODO 1045 - name: BC7_RGBA_unorm 1046 doc: | 1047 TODO 1048 - name: BC7_RGBA_unorm_srgb 1049 doc: | 1050 TODO 1051 - name: ETC2_RGB8_unorm 1052 doc: | 1053 TODO 1054 - name: ETC2_RGB8_unorm_srgb 1055 doc: | 1056 TODO 1057 - name: ETC2_RGB8A1_unorm 1058 doc: | 1059 TODO 1060 - name: ETC2_RGB8A1_unorm_srgb 1061 doc: | 1062 TODO 1063 - name: ETC2_RGBA8_unorm 1064 doc: | 1065 TODO 1066 - name: ETC2_RGBA8_unorm_srgb 1067 doc: | 1068 TODO 1069 - name: EAC_R11_unorm 1070 doc: | 1071 TODO 1072 - name: EAC_R11_snorm 1073 doc: | 1074 TODO 1075 - name: EAC_RG11_unorm 1076 doc: | 1077 TODO 1078 - name: EAC_RG11_snorm 1079 doc: | 1080 TODO 1081 - name: ASTC_4x4_unorm 1082 doc: | 1083 TODO 1084 - name: ASTC_4x4_unorm_srgb 1085 doc: | 1086 TODO 1087 - name: ASTC_5x4_unorm 1088 doc: | 1089 TODO 1090 - name: ASTC_5x4_unorm_srgb 1091 doc: | 1092 TODO 1093 - name: ASTC_5x5_unorm 1094 doc: | 1095 TODO 1096 - name: ASTC_5x5_unorm_srgb 1097 doc: | 1098 TODO 1099 - name: ASTC_6x5_unorm 1100 doc: | 1101 TODO 1102 - name: ASTC_6x5_unorm_srgb 1103 doc: | 1104 TODO 1105 - name: ASTC_6x6_unorm 1106 doc: | 1107 TODO 1108 - name: ASTC_6x6_unorm_srgb 1109 doc: | 1110 TODO 1111 - name: ASTC_8x5_unorm 1112 doc: | 1113 TODO 1114 - name: ASTC_8x5_unorm_srgb 1115 doc: | 1116 TODO 1117 - name: ASTC_8x6_unorm 1118 doc: | 1119 TODO 1120 - name: ASTC_8x6_unorm_srgb 1121 doc: | 1122 TODO 1123 - name: ASTC_8x8_unorm 1124 doc: | 1125 TODO 1126 - name: ASTC_8x8_unorm_srgb 1127 doc: | 1128 TODO 1129 - name: ASTC_10x5_unorm 1130 doc: | 1131 TODO 1132 - name: ASTC_10x5_unorm_srgb 1133 doc: | 1134 TODO 1135 - name: ASTC_10x6_unorm 1136 doc: | 1137 TODO 1138 - name: ASTC_10x6_unorm_srgb 1139 doc: | 1140 TODO 1141 - name: ASTC_10x8_unorm 1142 doc: | 1143 TODO 1144 - name: ASTC_10x8_unorm_srgb 1145 doc: | 1146 TODO 1147 - name: ASTC_10x10_unorm 1148 doc: | 1149 TODO 1150 - name: ASTC_10x10_unorm_srgb 1151 doc: | 1152 TODO 1153 - name: ASTC_12x10_unorm 1154 doc: | 1155 TODO 1156 - name: ASTC_12x10_unorm_srgb 1157 doc: | 1158 TODO 1159 - name: ASTC_12x12_unorm 1160 doc: | 1161 TODO 1162 - name: ASTC_12x12_unorm_srgb 1163 doc: | 1164 TODO 1165 - name: texture_sample_type 1166 doc: | 1167 TODO 1168 entries: 1169 - name: binding_not_used 1170 doc: | 1171 Indicates that this @ref WGPUTextureBindingLayout member of 1172 its parent @ref WGPUBindGroupLayoutEntry is not used. 1173 (See also @ref SentinelValues.) 1174 - name: undefined 1175 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 1176 - name: float 1177 doc: | 1178 TODO 1179 - name: unfilterable_float 1180 doc: | 1181 TODO 1182 - name: depth 1183 doc: | 1184 TODO 1185 - name: sint 1186 doc: | 1187 TODO 1188 - name: uint 1189 doc: | 1190 TODO 1191 - name: texture_view_dimension 1192 doc: | 1193 TODO 1194 entries: 1195 - name: undefined 1196 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 1197 - name: 1D 1198 doc: | 1199 TODO 1200 - name: 2D 1201 doc: | 1202 TODO 1203 - name: 2D_array 1204 doc: | 1205 TODO 1206 - name: cube 1207 doc: | 1208 TODO 1209 - name: cube_array 1210 doc: | 1211 TODO 1212 - name: 3D 1213 doc: | 1214 TODO 1215 - name: vertex_format 1216 doc: | 1217 TODO 1218 entries: 1219 - null 1220 - name: uint8 1221 doc: | 1222 TODO 1223 - name: uint8x2 1224 doc: | 1225 TODO 1226 - name: uint8x4 1227 doc: | 1228 TODO 1229 - name: sint8 1230 doc: | 1231 TODO 1232 - name: sint8x2 1233 doc: | 1234 TODO 1235 - name: sint8x4 1236 doc: | 1237 TODO 1238 - name: unorm8 1239 doc: | 1240 TODO 1241 - name: unorm8x2 1242 doc: | 1243 TODO 1244 - name: unorm8x4 1245 doc: | 1246 TODO 1247 - name: snorm8 1248 doc: | 1249 TODO 1250 - name: snorm8x2 1251 doc: | 1252 TODO 1253 - name: snorm8x4 1254 doc: | 1255 TODO 1256 - name: uint16 1257 doc: | 1258 TODO 1259 - name: uint16x2 1260 doc: | 1261 TODO 1262 - name: uint16x4 1263 doc: | 1264 TODO 1265 - name: sint16 1266 doc: | 1267 TODO 1268 - name: sint16x2 1269 doc: | 1270 TODO 1271 - name: sint16x4 1272 doc: | 1273 TODO 1274 - name: unorm16 1275 doc: | 1276 TODO 1277 - name: unorm16x2 1278 doc: | 1279 TODO 1280 - name: unorm16x4 1281 doc: | 1282 TODO 1283 - name: snorm16 1284 doc: | 1285 TODO 1286 - name: snorm16x2 1287 doc: | 1288 TODO 1289 - name: snorm16x4 1290 doc: | 1291 TODO 1292 - name: float16 1293 doc: | 1294 TODO 1295 - name: float16x2 1296 doc: | 1297 TODO 1298 - name: float16x4 1299 doc: | 1300 TODO 1301 - name: float32 1302 doc: | 1303 TODO 1304 - name: float32x2 1305 doc: | 1306 TODO 1307 - name: float32x3 1308 doc: | 1309 TODO 1310 - name: float32x4 1311 doc: | 1312 TODO 1313 - name: uint32 1314 doc: | 1315 TODO 1316 - name: uint32x2 1317 doc: | 1318 TODO 1319 - name: uint32x3 1320 doc: | 1321 TODO 1322 - name: uint32x4 1323 doc: | 1324 TODO 1325 - name: sint32 1326 doc: | 1327 TODO 1328 - name: sint32x2 1329 doc: | 1330 TODO 1331 - name: sint32x3 1332 doc: | 1333 TODO 1334 - name: sint32x4 1335 doc: | 1336 TODO 1337 - name: unorm10__10__10__2 1338 doc: | 1339 TODO 1340 - name: unorm8x4_B_G_R_A 1341 doc: | 1342 TODO 1343 - name: vertex_step_mode 1344 doc: | 1345 TODO 1346 entries: 1347 - name: vertex_buffer_not_used 1348 doc: | 1349 This @ref WGPUVertexBufferLayout is a "hole" in the @ref WGPUVertexState `buffers` array. 1350 (See also @ref SentinelValues.) 1351 - name: undefined 1352 doc: Indicates no value is passed for this argument. See @ref SentinelValues. 1353 - name: vertex 1354 doc: | 1355 TODO 1356 - name: instance 1357 doc: | 1358 TODO 1359 - name: wait_status 1360 doc: Status returned from a call to ::wgpuInstanceWaitAny. 1361 entries: 1362 - null 1363 - name: success 1364 doc: At least one WGPUFuture completed successfully. 1365 - name: timed_out 1366 doc: No WGPUFutures completed within the timeout. 1367 - name: unsupported_timeout 1368 doc: A @ref Timed-Wait was performed when WGPUInstanceFeatures::timedWaitAnyEnable is false. 1369 - name: unsupported_count 1370 doc: The number of futures waited on in a @ref Timed-Wait is greater than the supported WGPUInstanceFeatures::timedWaitAnyMaxCount. 1371 - name: unsupported_mixed_sources 1372 doc: An invalid wait was performed with @ref Mixed-Sources. 1373 - name: WGSL_language_feature_name 1374 doc: | 1375 TODO 1376 entries: 1377 - null 1378 - name: readonly_and_readwrite_storage_textures 1379 doc: | 1380 TODO 1381 - name: packed4x8_integer_dot_product 1382 doc: | 1383 TODO 1384 - name: unrestricted_pointer_parameters 1385 doc: | 1386 TODO 1387 - name: pointer_composite_access 1388 doc: | 1389 TODO 1390 bitflags: 1391 - name: buffer_usage 1392 doc: | 1393 TODO 1394 entries: 1395 - name: none 1396 doc: | 1397 TODO 1398 - name: map_read 1399 doc: | 1400 TODO 1401 - name: map_write 1402 doc: | 1403 TODO 1404 - name: copy_src 1405 doc: | 1406 TODO 1407 - name: copy_dst 1408 doc: | 1409 TODO 1410 - name: index 1411 doc: | 1412 TODO 1413 - name: vertex 1414 doc: | 1415 TODO 1416 - name: uniform 1417 doc: | 1418 TODO 1419 - name: storage 1420 doc: | 1421 TODO 1422 - name: indirect 1423 doc: | 1424 TODO 1425 - name: query_resolve 1426 doc: | 1427 TODO 1428 - name: color_write_mask 1429 doc: | 1430 TODO 1431 entries: 1432 - name: none 1433 doc: | 1434 TODO 1435 - name: red 1436 doc: | 1437 TODO 1438 - name: green 1439 doc: | 1440 TODO 1441 - name: blue 1442 doc: | 1443 TODO 1444 - name: alpha 1445 doc: | 1446 TODO 1447 - name: all 1448 value_combination: 1449 - red 1450 - green 1451 - blue 1452 - alpha 1453 doc: | 1454 TODO 1455 - name: map_mode 1456 doc: | 1457 TODO 1458 entries: 1459 - name: none 1460 doc: | 1461 TODO 1462 - name: read 1463 doc: | 1464 TODO 1465 - name: write 1466 doc: | 1467 TODO 1468 - name: shader_stage 1469 doc: | 1470 TODO 1471 entries: 1472 - name: none 1473 doc: | 1474 TODO 1475 - name: vertex 1476 doc: | 1477 TODO 1478 - name: fragment 1479 doc: | 1480 TODO 1481 - name: compute 1482 doc: | 1483 TODO 1484 - name: texture_usage 1485 doc: | 1486 TODO 1487 entries: 1488 - name: none 1489 doc: | 1490 TODO 1491 - name: copy_src 1492 doc: | 1493 TODO 1494 - name: copy_dst 1495 doc: | 1496 TODO 1497 - name: texture_binding 1498 doc: | 1499 TODO 1500 - name: storage_binding 1501 doc: | 1502 TODO 1503 - name: render_attachment 1504 doc: | 1505 TODO 1506 structs: 1507 - name: adapter_info 1508 doc: | 1509 TODO 1510 type: base_out 1511 free_members: true 1512 members: 1513 - name: vendor 1514 doc: | 1515 TODO 1516 type: out_string 1517 - name: architecture 1518 doc: | 1519 TODO 1520 type: out_string 1521 - name: device 1522 doc: | 1523 TODO 1524 type: out_string 1525 - name: description 1526 doc: | 1527 TODO 1528 type: out_string 1529 - name: backend_type 1530 doc: | 1531 TODO 1532 type: enum.backend_type 1533 - name: adapter_type 1534 doc: | 1535 TODO 1536 type: enum.adapter_type 1537 - name: vendor_ID 1538 doc: | 1539 TODO 1540 type: uint32 1541 - name: device_ID 1542 doc: | 1543 TODO 1544 type: uint32 1545 - name: bind_group_descriptor 1546 doc: | 1547 TODO 1548 type: base_in 1549 members: 1550 - name: label 1551 doc: | 1552 TODO 1553 type: string_with_default_empty 1554 - name: layout 1555 doc: | 1556 TODO 1557 type: object.bind_group_layout 1558 - name: entries 1559 doc: | 1560 TODO 1561 type: array<struct.bind_group_entry> 1562 pointer: immutable 1563 - name: bind_group_entry 1564 doc: | 1565 TODO 1566 type: base_in 1567 members: 1568 - name: binding 1569 doc: | 1570 TODO 1571 type: uint32 1572 - name: buffer 1573 doc: | 1574 TODO 1575 type: object.buffer 1576 optional: true 1577 - name: offset 1578 doc: | 1579 TODO 1580 type: uint64 1581 - name: size 1582 doc: | 1583 TODO 1584 type: uint64 1585 - name: sampler 1586 doc: | 1587 TODO 1588 type: object.sampler 1589 optional: true 1590 - name: texture_view 1591 doc: | 1592 TODO 1593 type: object.texture_view 1594 optional: true 1595 - name: bind_group_layout_descriptor 1596 doc: | 1597 TODO 1598 type: base_in 1599 members: 1600 - name: label 1601 doc: | 1602 TODO 1603 type: string_with_default_empty 1604 - name: entries 1605 doc: | 1606 TODO 1607 type: array<struct.bind_group_layout_entry> 1608 pointer: immutable 1609 - name: bind_group_layout_entry 1610 doc: | 1611 TODO 1612 type: base_in 1613 members: 1614 - name: binding 1615 doc: | 1616 TODO 1617 type: uint32 1618 - name: visibility 1619 doc: | 1620 TODO 1621 type: bitflag.shader_stage 1622 - name: buffer 1623 doc: | 1624 TODO 1625 type: struct.buffer_binding_layout 1626 - name: sampler 1627 doc: | 1628 TODO 1629 type: struct.sampler_binding_layout 1630 - name: texture 1631 doc: | 1632 TODO 1633 type: struct.texture_binding_layout 1634 - name: storage_texture 1635 doc: | 1636 TODO 1637 type: struct.storage_texture_binding_layout 1638 - name: blend_component 1639 doc: | 1640 TODO 1641 type: standalone 1642 members: 1643 - name: operation 1644 doc: | 1645 TODO 1646 type: enum.blend_operation 1647 - name: src_factor 1648 doc: | 1649 TODO 1650 type: enum.blend_factor 1651 - name: dst_factor 1652 doc: | 1653 TODO 1654 type: enum.blend_factor 1655 - name: blend_state 1656 doc: | 1657 TODO 1658 type: standalone 1659 members: 1660 - name: color 1661 doc: | 1662 TODO 1663 type: struct.blend_component 1664 - name: alpha 1665 doc: | 1666 TODO 1667 type: struct.blend_component 1668 - name: buffer_binding_layout 1669 doc: | 1670 TODO 1671 type: base_in 1672 members: 1673 - name: type 1674 doc: | 1675 TODO 1676 type: enum.buffer_binding_type 1677 - name: has_dynamic_offset 1678 doc: | 1679 TODO 1680 type: bool 1681 - name: min_binding_size 1682 doc: | 1683 TODO 1684 type: uint64 1685 - name: buffer_descriptor 1686 doc: | 1687 TODO 1688 type: base_in 1689 members: 1690 - name: label 1691 doc: | 1692 TODO 1693 type: string_with_default_empty 1694 - name: usage 1695 doc: | 1696 TODO 1697 type: bitflag.buffer_usage 1698 - name: size 1699 doc: | 1700 TODO 1701 type: uint64 1702 - name: mapped_at_creation 1703 doc: | 1704 TODO 1705 type: bool 1706 - name: color 1707 doc: | 1708 TODO 1709 type: standalone 1710 members: 1711 - name: r 1712 doc: | 1713 TODO 1714 type: float64 1715 - name: g 1716 doc: | 1717 TODO 1718 type: float64 1719 - name: b 1720 doc: | 1721 TODO 1722 type: float64 1723 - name: a 1724 doc: | 1725 TODO 1726 type: float64 1727 - name: color_target_state 1728 doc: | 1729 TODO 1730 type: base_in 1731 members: 1732 - name: format 1733 doc: | 1734 The texture format of the target. If @ref WGPUTextureFormat_Undefined, 1735 indicates a "hole" in the parent @ref WGPUFragmentState `targets` array: 1736 the pipeline does not output a value at this `location`. 1737 type: enum.texture_format 1738 - name: blend 1739 doc: | 1740 TODO 1741 type: struct.blend_state 1742 pointer: immutable 1743 optional: true 1744 - name: write_mask 1745 doc: | 1746 TODO 1747 type: bitflag.color_write_mask 1748 - name: command_buffer_descriptor 1749 doc: | 1750 TODO 1751 type: base_in 1752 members: 1753 - name: label 1754 doc: | 1755 TODO 1756 type: string_with_default_empty 1757 - name: command_encoder_descriptor 1758 doc: | 1759 TODO 1760 type: base_in 1761 members: 1762 - name: label 1763 doc: | 1764 TODO 1765 type: string_with_default_empty 1766 - name: compilation_info 1767 doc: | 1768 TODO 1769 type: base_in 1770 members: 1771 - name: messages 1772 doc: | 1773 TODO 1774 type: array<struct.compilation_message> 1775 pointer: immutable 1776 - name: compilation_message 1777 doc: | 1778 TODO 1779 type: base_in 1780 members: 1781 - name: message 1782 doc: | 1783 A @ref LocalizableHumanReadableMessageString. 1784 type: out_string 1785 - name: type 1786 doc: | 1787 Severity level of the message. 1788 type: enum.compilation_message_type 1789 - name: line_num 1790 doc: | 1791 Line number where the message is attached, starting at 1. 1792 type: uint64 1793 - name: line_pos 1794 doc: | 1795 Offset in UTF-8 code units (bytes) from the beginning of the line, starting at 1. 1796 type: uint64 1797 - name: offset 1798 doc: | 1799 Offset in UTF-8 code units (bytes) from the beginning of the shader code, starting at 0. 1800 type: uint64 1801 - name: length 1802 doc: | 1803 Length in UTF-8 code units (bytes) of the span the message corresponds to. 1804 type: uint64 1805 - name: compute_pass_descriptor 1806 doc: | 1807 TODO 1808 type: base_in 1809 members: 1810 - name: label 1811 doc: | 1812 TODO 1813 type: string_with_default_empty 1814 - name: timestamp_writes 1815 doc: | 1816 TODO 1817 type: struct.compute_pass_timestamp_writes 1818 pointer: immutable 1819 optional: true 1820 - name: compute_pass_timestamp_writes 1821 doc: | 1822 TODO 1823 type: standalone 1824 members: 1825 - name: query_set 1826 doc: | 1827 TODO 1828 type: object.query_set 1829 - name: beginning_of_pass_write_index 1830 doc: | 1831 TODO 1832 type: uint32 1833 - name: end_of_pass_write_index 1834 doc: | 1835 TODO 1836 type: uint32 1837 - name: compute_pipeline_descriptor 1838 doc: | 1839 TODO 1840 type: base_in 1841 members: 1842 - name: label 1843 doc: | 1844 TODO 1845 type: string_with_default_empty 1846 - name: layout 1847 doc: | 1848 TODO 1849 type: object.pipeline_layout 1850 optional: true 1851 - name: compute 1852 doc: | 1853 TODO 1854 type: struct.programmable_stage_descriptor 1855 - name: constant_entry 1856 doc: | 1857 TODO 1858 type: base_in 1859 members: 1860 - name: key 1861 doc: | 1862 TODO 1863 type: string_with_default_empty 1864 - name: value 1865 doc: | 1866 TODO 1867 type: float64 1868 - name: depth_stencil_state 1869 doc: | 1870 TODO 1871 type: base_in 1872 members: 1873 - name: format 1874 doc: | 1875 TODO 1876 type: enum.texture_format 1877 - name: depth_write_enabled 1878 doc: | 1879 TODO 1880 type: enum.optional_bool 1881 - name: depth_compare 1882 doc: | 1883 TODO 1884 type: enum.compare_function 1885 - name: stencil_front 1886 doc: | 1887 TODO 1888 type: struct.stencil_face_state 1889 - name: stencil_back 1890 doc: | 1891 TODO 1892 type: struct.stencil_face_state 1893 - name: stencil_read_mask 1894 doc: | 1895 TODO 1896 type: uint32 1897 - name: stencil_write_mask 1898 doc: | 1899 TODO 1900 type: uint32 1901 - name: depth_bias 1902 doc: | 1903 TODO 1904 type: int32 1905 - name: depth_bias_slope_scale 1906 doc: | 1907 TODO 1908 type: float32 1909 - name: depth_bias_clamp 1910 doc: | 1911 TODO 1912 type: float32 1913 - name: device_descriptor 1914 doc: | 1915 TODO 1916 type: base_in 1917 members: 1918 - name: label 1919 doc: | 1920 TODO 1921 type: string_with_default_empty 1922 - name: required_features 1923 doc: | 1924 TODO 1925 type: array<enum.feature_name> 1926 pointer: immutable 1927 - name: required_limits 1928 doc: | 1929 TODO 1930 type: struct.limits 1931 pointer: immutable 1932 optional: true 1933 - name: default_queue 1934 doc: | 1935 TODO 1936 type: struct.queue_descriptor 1937 - name: device_lost_callback_info 1938 doc: | 1939 TODO 1940 type: callback.device_lost 1941 - name: uncaptured_error_callback_info 1942 doc: | 1943 TODO 1944 type: callback.uncaptured_error 1945 - name: extent_3D 1946 doc: | 1947 TODO 1948 type: standalone 1949 members: 1950 - name: width 1951 doc: | 1952 TODO 1953 type: uint32 1954 - name: height 1955 doc: | 1956 TODO 1957 type: uint32 1958 - name: depth_or_array_layers 1959 doc: | 1960 TODO 1961 type: uint32 1962 - name: fragment_state 1963 doc: | 1964 TODO 1965 type: base_in 1966 members: 1967 - name: module 1968 doc: | 1969 TODO 1970 type: object.shader_module 1971 - name: entry_point 1972 doc: | 1973 TODO 1974 type: nullable_string 1975 - name: constants 1976 doc: | 1977 TODO 1978 type: array<struct.constant_entry> 1979 pointer: immutable 1980 - name: targets 1981 doc: | 1982 TODO 1983 type: array<struct.color_target_state> 1984 pointer: immutable 1985 - name: future 1986 doc: Opaque handle to an asynchronous operation. See @ref Asynchronous-Operations for more information. 1987 type: standalone 1988 members: 1989 - name: id 1990 doc: Opaque id of the @ref WGPUFuture 1991 type: uint64 1992 - name: future_wait_info 1993 doc: Struct holding a future to wait on, and a `completed` boolean flag. 1994 type: standalone 1995 members: 1996 - name: future 1997 doc: The future to wait on. 1998 type: struct.future 1999 - name: completed 2000 doc: Whether or not the future completed. 2001 type: bool 2002 - name: instance_capabilities 2003 doc: | 2004 Features enabled on the WGPUInstance 2005 type: base_in_or_out 2006 members: 2007 - name: timed_wait_any_enable 2008 doc: Enable use of ::wgpuInstanceWaitAny with `timeoutNS > 0`. 2009 type: bool 2010 - name: timed_wait_any_max_count 2011 doc: The maximum number @ref WGPUFutureWaitInfo supported in a call to ::wgpuInstanceWaitAny with `timeoutNS > 0`. 2012 type: usize 2013 - name: instance_descriptor 2014 doc: | 2015 TODO 2016 type: base_in 2017 members: 2018 - name: features 2019 doc: Instance features to enable 2020 type: struct.instance_capabilities 2021 - name: limits 2022 doc: | 2023 TODO 2024 type: base_in_or_out 2025 members: 2026 - name: max_texture_dimension_1D 2027 doc: | 2028 TODO 2029 type: uint32 2030 - name: max_texture_dimension_2D 2031 doc: | 2032 TODO 2033 type: uint32 2034 - name: max_texture_dimension_3D 2035 doc: | 2036 TODO 2037 type: uint32 2038 - name: max_texture_array_layers 2039 doc: | 2040 TODO 2041 type: uint32 2042 - name: max_bind_groups 2043 doc: | 2044 TODO 2045 type: uint32 2046 - name: max_bind_groups_plus_vertex_buffers 2047 doc: | 2048 TODO 2049 type: uint32 2050 - name: max_bindings_per_bind_group 2051 doc: | 2052 TODO 2053 type: uint32 2054 - name: max_dynamic_uniform_buffers_per_pipeline_layout 2055 doc: | 2056 TODO 2057 type: uint32 2058 - name: max_dynamic_storage_buffers_per_pipeline_layout 2059 doc: | 2060 TODO 2061 type: uint32 2062 - name: max_sampled_textures_per_shader_stage 2063 doc: | 2064 TODO 2065 type: uint32 2066 - name: max_samplers_per_shader_stage 2067 doc: | 2068 TODO 2069 type: uint32 2070 - name: max_storage_buffers_per_shader_stage 2071 doc: | 2072 TODO 2073 type: uint32 2074 - name: max_storage_textures_per_shader_stage 2075 doc: | 2076 TODO 2077 type: uint32 2078 - name: max_uniform_buffers_per_shader_stage 2079 doc: | 2080 TODO 2081 type: uint32 2082 - name: max_uniform_buffer_binding_size 2083 doc: | 2084 TODO 2085 type: uint64 2086 - name: max_storage_buffer_binding_size 2087 doc: | 2088 TODO 2089 type: uint64 2090 - name: min_uniform_buffer_offset_alignment 2091 doc: | 2092 TODO 2093 type: uint32 2094 - name: min_storage_buffer_offset_alignment 2095 doc: | 2096 TODO 2097 type: uint32 2098 - name: max_vertex_buffers 2099 doc: | 2100 TODO 2101 type: uint32 2102 - name: max_buffer_size 2103 doc: | 2104 TODO 2105 type: uint64 2106 - name: max_vertex_attributes 2107 doc: | 2108 TODO 2109 type: uint32 2110 - name: max_vertex_buffer_array_stride 2111 doc: | 2112 TODO 2113 type: uint32 2114 - name: max_inter_stage_shader_variables 2115 doc: | 2116 TODO 2117 type: uint32 2118 - name: max_color_attachments 2119 doc: | 2120 TODO 2121 type: uint32 2122 - name: max_color_attachment_bytes_per_sample 2123 doc: | 2124 TODO 2125 type: uint32 2126 - name: max_compute_workgroup_storage_size 2127 doc: | 2128 TODO 2129 type: uint32 2130 - name: max_compute_invocations_per_workgroup 2131 doc: | 2132 TODO 2133 type: uint32 2134 - name: max_compute_workgroup_size_x 2135 doc: | 2136 TODO 2137 type: uint32 2138 - name: max_compute_workgroup_size_y 2139 doc: | 2140 TODO 2141 type: uint32 2142 - name: max_compute_workgroup_size_z 2143 doc: | 2144 TODO 2145 type: uint32 2146 - name: max_compute_workgroups_per_dimension 2147 doc: | 2148 TODO 2149 type: uint32 2150 - name: multisample_state 2151 doc: | 2152 TODO 2153 type: base_in 2154 members: 2155 - name: count 2156 doc: | 2157 TODO 2158 type: uint32 2159 - name: mask 2160 doc: | 2161 TODO 2162 type: uint32 2163 - name: alpha_to_coverage_enabled 2164 doc: | 2165 TODO 2166 type: bool 2167 - name: origin_3D 2168 doc: | 2169 TODO 2170 type: standalone 2171 members: 2172 - name: x 2173 doc: | 2174 TODO 2175 type: uint32 2176 - name: y 2177 doc: | 2178 TODO 2179 type: uint32 2180 - name: z 2181 doc: | 2182 TODO 2183 type: uint32 2184 - name: pipeline_layout_descriptor 2185 doc: | 2186 TODO 2187 type: base_in 2188 members: 2189 - name: label 2190 doc: | 2191 TODO 2192 type: string_with_default_empty 2193 - name: bind_group_layouts 2194 doc: | 2195 TODO 2196 type: array<object.bind_group_layout> 2197 pointer: immutable 2198 - name: primitive_state 2199 doc: | 2200 TODO 2201 type: base_in 2202 members: 2203 - name: topology 2204 doc: | 2205 TODO 2206 type: enum.primitive_topology 2207 - name: strip_index_format 2208 doc: | 2209 TODO 2210 type: enum.index_format 2211 - name: front_face 2212 doc: | 2213 TODO 2214 type: enum.front_face 2215 - name: cull_mode 2216 doc: | 2217 TODO 2218 type: enum.cull_mode 2219 - name: unclipped_depth 2220 doc: | 2221 TODO 2222 type: bool 2223 - name: programmable_stage_descriptor 2224 doc: | 2225 TODO 2226 type: base_in 2227 members: 2228 - name: module 2229 doc: | 2230 TODO 2231 type: object.shader_module 2232 - name: entry_point 2233 doc: | 2234 TODO 2235 type: nullable_string 2236 - name: constants 2237 doc: | 2238 TODO 2239 type: array<struct.constant_entry> 2240 pointer: immutable 2241 - name: query_set_descriptor 2242 doc: | 2243 TODO 2244 type: base_in 2245 members: 2246 - name: label 2247 doc: | 2248 TODO 2249 type: string_with_default_empty 2250 - name: type 2251 doc: | 2252 TODO 2253 type: enum.query_type 2254 - name: count 2255 doc: | 2256 TODO 2257 type: uint32 2258 - name: queue_descriptor 2259 doc: | 2260 TODO 2261 type: base_in 2262 members: 2263 - name: label 2264 doc: | 2265 TODO 2266 type: string_with_default_empty 2267 - name: render_bundle_descriptor 2268 doc: | 2269 TODO 2270 type: base_in 2271 members: 2272 - name: label 2273 doc: | 2274 TODO 2275 type: string_with_default_empty 2276 - name: render_bundle_encoder_descriptor 2277 doc: | 2278 TODO 2279 type: base_in 2280 members: 2281 - name: label 2282 doc: | 2283 TODO 2284 type: string_with_default_empty 2285 - name: color_formats 2286 doc: | 2287 TODO 2288 type: array<enum.texture_format> 2289 pointer: immutable 2290 - name: depth_stencil_format 2291 doc: | 2292 TODO 2293 type: enum.texture_format 2294 - name: sample_count 2295 doc: | 2296 TODO 2297 type: uint32 2298 - name: depth_read_only 2299 doc: | 2300 TODO 2301 type: bool 2302 - name: stencil_read_only 2303 doc: | 2304 TODO 2305 type: bool 2306 - name: render_pass_color_attachment 2307 doc: | 2308 TODO 2309 type: base_in 2310 members: 2311 - name: view 2312 doc: | 2313 TODO 2314 type: object.texture_view 2315 optional: true 2316 - name: depth_slice 2317 doc: | 2318 TODO 2319 type: uint32 2320 - name: resolve_target 2321 doc: | 2322 TODO 2323 type: object.texture_view 2324 optional: true 2325 - name: load_op 2326 doc: | 2327 TODO 2328 type: enum.load_op 2329 - name: store_op 2330 doc: | 2331 TODO 2332 type: enum.store_op 2333 - name: clear_value 2334 doc: | 2335 TODO 2336 type: struct.color 2337 - name: render_pass_depth_stencil_attachment 2338 doc: | 2339 TODO 2340 type: standalone 2341 members: 2342 - name: view 2343 doc: | 2344 TODO 2345 type: object.texture_view 2346 - name: depth_load_op 2347 doc: | 2348 TODO 2349 type: enum.load_op 2350 - name: depth_store_op 2351 doc: | 2352 TODO 2353 type: enum.store_op 2354 - name: depth_clear_value 2355 doc: | 2356 TODO 2357 type: float32 2358 - name: depth_read_only 2359 doc: | 2360 TODO 2361 type: bool 2362 - name: stencil_load_op 2363 doc: | 2364 TODO 2365 type: enum.load_op 2366 - name: stencil_store_op 2367 doc: | 2368 TODO 2369 type: enum.store_op 2370 - name: stencil_clear_value 2371 doc: | 2372 TODO 2373 type: uint32 2374 - name: stencil_read_only 2375 doc: | 2376 TODO 2377 type: bool 2378 - name: render_pass_descriptor 2379 doc: | 2380 TODO 2381 type: base_in 2382 members: 2383 - name: label 2384 doc: | 2385 TODO 2386 type: string_with_default_empty 2387 - name: color_attachments 2388 doc: | 2389 TODO 2390 type: array<struct.render_pass_color_attachment> 2391 pointer: immutable 2392 - name: depth_stencil_attachment 2393 doc: | 2394 TODO 2395 type: struct.render_pass_depth_stencil_attachment 2396 pointer: immutable 2397 optional: true 2398 - name: occlusion_query_set 2399 doc: | 2400 TODO 2401 type: object.query_set 2402 optional: true 2403 - name: timestamp_writes 2404 doc: | 2405 TODO 2406 type: struct.render_pass_timestamp_writes 2407 pointer: immutable 2408 optional: true 2409 - name: render_pass_max_draw_count 2410 doc: | 2411 TODO 2412 type: extension_in 2413 extends: 2414 - render_pass_descriptor 2415 members: 2416 - name: max_draw_count 2417 doc: | 2418 TODO 2419 type: uint64 2420 - name: render_pass_timestamp_writes 2421 doc: | 2422 TODO 2423 type: standalone 2424 members: 2425 - name: query_set 2426 doc: | 2427 TODO 2428 type: object.query_set 2429 - name: beginning_of_pass_write_index 2430 doc: | 2431 TODO 2432 type: uint32 2433 - name: end_of_pass_write_index 2434 doc: | 2435 TODO 2436 type: uint32 2437 - name: render_pipeline_descriptor 2438 doc: | 2439 TODO 2440 type: base_in 2441 members: 2442 - name: label 2443 doc: | 2444 TODO 2445 type: string_with_default_empty 2446 - name: layout 2447 doc: | 2448 TODO 2449 type: object.pipeline_layout 2450 optional: true 2451 - name: vertex 2452 doc: | 2453 TODO 2454 type: struct.vertex_state 2455 - name: primitive 2456 doc: | 2457 TODO 2458 type: struct.primitive_state 2459 - name: depth_stencil 2460 doc: | 2461 TODO 2462 type: struct.depth_stencil_state 2463 pointer: immutable 2464 optional: true 2465 - name: multisample 2466 doc: | 2467 TODO 2468 type: struct.multisample_state 2469 - name: fragment 2470 doc: | 2471 TODO 2472 type: struct.fragment_state 2473 pointer: immutable 2474 optional: true 2475 - name: request_adapter_options 2476 doc: | 2477 TODO 2478 type: base_in 2479 members: 2480 - name: feature_level 2481 doc: | 2482 "Feature level" for the adapter request. If an adapter is returned, it must support the features and limits in the requested feature level. 2483 2484 Implementations may ignore @ref WGPUFeatureLevel_Compatibility and provide @ref WGPUFeatureLevel_Core instead. @ref WGPUFeatureLevel_Core is the default in the JS API, but in C, this field is **required** (must not be undefined). 2485 type: enum.feature_level 2486 - name: power_preference 2487 doc: | 2488 TODO 2489 type: enum.power_preference 2490 - name: force_fallback_adapter 2491 doc: | 2492 If true, requires the adapter to be a "fallback" adapter as defined by the JS spec. 2493 If this is not possible, the request returns null. 2494 type: bool 2495 - name: backend_type 2496 doc: | 2497 If set, requires the adapter to have a particular backend type. 2498 If this is not possible, the request returns null. 2499 type: enum.backend_type 2500 - name: compatible_surface 2501 doc: | 2502 If set, requires the adapter to be able to output to a particular surface. 2503 If this is not possible, the request returns null. 2504 type: object.surface 2505 optional: true 2506 - name: sampler_binding_layout 2507 doc: | 2508 TODO 2509 type: base_in 2510 members: 2511 - name: type 2512 doc: | 2513 TODO 2514 type: enum.sampler_binding_type 2515 - name: sampler_descriptor 2516 doc: | 2517 TODO 2518 type: base_in 2519 members: 2520 - name: label 2521 doc: | 2522 TODO 2523 type: string_with_default_empty 2524 - name: address_mode_u 2525 doc: | 2526 TODO 2527 type: enum.address_mode 2528 - name: address_mode_v 2529 doc: | 2530 TODO 2531 type: enum.address_mode 2532 - name: address_mode_w 2533 doc: | 2534 TODO 2535 type: enum.address_mode 2536 - name: mag_filter 2537 doc: | 2538 TODO 2539 type: enum.filter_mode 2540 - name: min_filter 2541 doc: | 2542 TODO 2543 type: enum.filter_mode 2544 - name: mipmap_filter 2545 doc: | 2546 TODO 2547 type: enum.mipmap_filter_mode 2548 - name: lod_min_clamp 2549 doc: | 2550 TODO 2551 type: float32 2552 - name: lod_max_clamp 2553 doc: | 2554 TODO 2555 type: float32 2556 - name: compare 2557 doc: | 2558 TODO 2559 type: enum.compare_function 2560 - name: max_anisotropy 2561 doc: | 2562 TODO 2563 type: uint16 2564 - name: shader_module_descriptor 2565 doc: | 2566 TODO 2567 type: base_in 2568 members: 2569 - name: label 2570 doc: | 2571 TODO 2572 type: string_with_default_empty 2573 - name: shader_source_SPIRV 2574 doc: | 2575 TODO 2576 type: extension_in 2577 extends: 2578 - shader_module_descriptor 2579 members: 2580 - name: code_size 2581 doc: | 2582 TODO 2583 type: uint32 2584 - name: code 2585 doc: | 2586 TODO 2587 type: uint32 2588 pointer: immutable 2589 - name: shader_source_WGSL 2590 doc: | 2591 TODO 2592 type: extension_in 2593 extends: 2594 - shader_module_descriptor 2595 members: 2596 - name: code 2597 doc: | 2598 TODO 2599 type: string_with_default_empty 2600 - name: stencil_face_state 2601 doc: | 2602 TODO 2603 type: standalone 2604 members: 2605 - name: compare 2606 doc: | 2607 TODO 2608 type: enum.compare_function 2609 - name: fail_op 2610 doc: | 2611 TODO 2612 type: enum.stencil_operation 2613 - name: depth_fail_op 2614 doc: | 2615 TODO 2616 type: enum.stencil_operation 2617 - name: pass_op 2618 doc: | 2619 TODO 2620 type: enum.stencil_operation 2621 - name: storage_texture_binding_layout 2622 doc: | 2623 TODO 2624 type: base_in 2625 members: 2626 - name: access 2627 doc: | 2628 TODO 2629 type: enum.storage_texture_access 2630 - name: format 2631 doc: | 2632 TODO 2633 type: enum.texture_format 2634 - name: view_dimension 2635 doc: | 2636 TODO 2637 type: enum.texture_view_dimension 2638 - name: supported_features 2639 doc: | 2640 TODO 2641 type: standalone 2642 free_members: true 2643 members: 2644 - name: features 2645 doc: | 2646 TODO 2647 type: array<enum.feature_name> 2648 pointer: immutable 2649 - name: supported_WGSL_language_features 2650 doc: | 2651 TODO 2652 type: standalone 2653 free_members: true 2654 members: 2655 - name: features 2656 doc: | 2657 TODO 2658 type: array<enum.WGSL_language_feature_name> 2659 pointer: immutable 2660 - name: surface_capabilities 2661 doc: Filled by `::wgpuSurfaceGetCapabilities` with what's supported for `::wgpuSurfaceConfigure` for a pair of @ref WGPUSurface and @ref WGPUAdapter. 2662 type: base_out 2663 free_members: true 2664 members: 2665 - name: usages 2666 doc: | 2667 The bit set of supported @ref WGPUTextureUsage bits. 2668 Guaranteed to contain @ref WGPUTextureUsage_RenderAttachment. 2669 type: bitflag.texture_usage 2670 - name: formats 2671 doc: A list of supported @ref WGPUTextureFormat values, in order of preference. 2672 type: array<enum.texture_format> 2673 pointer: immutable 2674 - name: present_modes 2675 doc: | 2676 A list of supported @ref WGPUPresentMode values. 2677 Guaranteed to contain @ref WGPUPresentMode_Fifo. 2678 type: array<enum.present_mode> 2679 pointer: immutable 2680 - name: alpha_modes 2681 doc: | 2682 A list of supported @ref WGPUCompositeAlphaMode values. 2683 @ref WGPUCompositeAlphaMode_Auto will be an alias for the first element and will never be present in this array. 2684 type: array<enum.composite_alpha_mode> 2685 pointer: immutable 2686 - name: surface_configuration 2687 doc: | 2688 Options to `::wgpuSurfaceConfigure` for defining how a @ref WGPUSurface will be rendered to and presented to the user. 2689 See @ref Surface-Configuration for more details. 2690 type: base_in 2691 members: 2692 - name: device 2693 doc: The @ref WGPUDevice to use to render to surface's textures. 2694 type: object.device 2695 - name: format 2696 doc: The @ref WGPUTextureFormat of the surface's textures. 2697 type: enum.texture_format 2698 - name: usage 2699 doc: The @ref WGPUTextureUsage of the surface's textures. 2700 type: bitflag.texture_usage 2701 - name: width 2702 doc: The width of the surface's textures. 2703 type: uint32 2704 - name: height 2705 doc: The height of the surface's textures. 2706 type: uint32 2707 - name: view_formats 2708 doc: The additional @ref WGPUTextureFormat for @ref WGPUTextureView format reinterpretation of the surface's textures. 2709 type: array<enum.texture_format> 2710 pointer: immutable 2711 - name: alpha_mode 2712 doc: How the surface's frames will be composited on the screen. 2713 type: enum.composite_alpha_mode 2714 - name: present_mode 2715 doc: When and in which order the surface's frames will be shown on the screen. Defaults to @ref WGPUPresentMode_Fifo. 2716 type: enum.present_mode 2717 - name: surface_descriptor 2718 doc: | 2719 The root descriptor for the creation of an @ref WGPUSurface with `::wgpuInstanceCreateSurface`. 2720 It isn't sufficient by itself and must have one of the `WGPUSurfaceSource*` in its chain. 2721 See @ref Surface-Creation for more details. 2722 type: base_in 2723 members: 2724 - name: label 2725 doc: Label used to refer to the object. 2726 type: string_with_default_empty 2727 - name: surface_source_android_native_window 2728 doc: Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping an Android [`ANativeWindow`](https://developer.android.com/ndk/reference/group/a-native-window). 2729 type: extension_in 2730 extends: 2731 - surface_descriptor 2732 members: 2733 - name: window 2734 doc: The pointer to the [`ANativeWindow`](https://developer.android.com/ndk/reference/group/a-native-window) that will be wrapped by the @ref WGPUSurface. 2735 type: c_void 2736 pointer: mutable 2737 - name: surface_source_metal_layer 2738 doc: Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping a [`CAMetalLayer`](https://developer.apple.com/documentation/quartzcore/cametallayer?language=objc). 2739 type: extension_in 2740 extends: 2741 - surface_descriptor 2742 members: 2743 - name: layer 2744 doc: The pointer to the [`CAMetalLayer`](https://developer.apple.com/documentation/quartzcore/cametallayer?language=objc) that will be wrapped by the @ref WGPUSurface. 2745 type: c_void 2746 pointer: mutable 2747 - name: surface_source_wayland_surface 2748 doc: Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping a [Wayland](https://wayland.freedesktop.org/) [`wl_surface`](https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_surface). 2749 type: extension_in 2750 extends: 2751 - surface_descriptor 2752 members: 2753 - name: display 2754 doc: A [`wl_display`](https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_display) for this Wayland instance. 2755 type: c_void 2756 pointer: mutable 2757 - name: surface 2758 doc: A [`wl_surface`](https://wayland.freedesktop.org/docs/html/apa.html#protocol-spec-wl_surface) that will be wrapped by the @ref WGPUSurface 2759 type: c_void 2760 pointer: mutable 2761 - name: surface_source_windows_HWND 2762 doc: Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping a Windows [`HWND`](https://learn.microsoft.com/en-us/windows/apps/develop/ui-input/retrieve-hwnd). 2763 type: extension_in 2764 extends: 2765 - surface_descriptor 2766 members: 2767 - name: hinstance 2768 doc: | 2769 The [`HINSTANCE`](https://learn.microsoft.com/en-us/windows/win32/learnwin32/winmain--the-application-entry-point) for this application. 2770 Most commonly `GetModuleHandle(nullptr)`. 2771 type: c_void 2772 pointer: mutable 2773 - name: hwnd 2774 doc: The [`HWND`](https://learn.microsoft.com/en-us/windows/apps/develop/ui-input/retrieve-hwnd) that will be wrapped by the @ref WGPUSurface. 2775 type: c_void 2776 pointer: mutable 2777 - name: surface_source_XCB_window 2778 doc: Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping an [XCB](https://xcb.freedesktop.org/) `xcb_window_t`. 2779 type: extension_in 2780 extends: 2781 - surface_descriptor 2782 members: 2783 - name: connection 2784 doc: The `xcb_connection_t` for the connection to the X server. 2785 type: c_void 2786 pointer: mutable 2787 - name: window 2788 doc: The `xcb_window_t` for the window that will be wrapped by the @ref WGPUSurface. 2789 type: uint32 2790 - name: surface_source_xlib_window 2791 doc: Chained in @ref WGPUSurfaceDescriptor to make an @ref WGPUSurface wrapping an [Xlib](https://www.x.org/releases/current/doc/libX11/libX11/libX11.html) `Window`. 2792 type: extension_in 2793 extends: 2794 - surface_descriptor 2795 members: 2796 - name: display 2797 doc: A pointer to the [`Display`](https://www.x.org/releases/current/doc/libX11/libX11/libX11.html#Opening_the_Display) connected to the X server. 2798 type: c_void 2799 pointer: mutable 2800 - name: window 2801 doc: The [`Window`](https://www.x.org/releases/current/doc/libX11/libX11/libX11.html#Creating_Windows) that will be wrapped by the @ref WGPUSurface. 2802 type: uint64 2803 - name: surface_texture 2804 doc: | 2805 Queried each frame from a @ref WGPUSurface to get a @ref WGPUTexture to render to along with some metadata. 2806 See @ref Surface-Presenting for more details. 2807 type: base_out 2808 members: 2809 - name: texture 2810 doc: | 2811 The @ref WGPUTexture representing the frame that will be shown on the surface. 2812 It is @ref ReturnedWithOwnership from @ref wgpuSurfaceGetCurrentTexture. 2813 type: object.texture 2814 - name: status 2815 doc: Whether the call to `::wgpuSurfaceGetCurrentTexture` succeeded and a hint as to why it might not have. 2816 type: enum.surface_get_current_texture_status 2817 - name: texel_copy_buffer_info 2818 doc: | 2819 TODO 2820 type: standalone 2821 members: 2822 - name: layout 2823 doc: | 2824 TODO 2825 type: struct.texel_copy_buffer_layout 2826 - name: buffer 2827 doc: | 2828 TODO 2829 type: object.buffer 2830 - name: texel_copy_buffer_layout 2831 doc: | 2832 TODO 2833 type: standalone 2834 members: 2835 - name: offset 2836 doc: | 2837 TODO 2838 type: uint64 2839 - name: bytes_per_row 2840 doc: | 2841 TODO 2842 type: uint32 2843 - name: rows_per_image 2844 doc: | 2845 TODO 2846 type: uint32 2847 - name: texel_copy_texture_info 2848 doc: | 2849 TODO 2850 type: standalone 2851 members: 2852 - name: texture 2853 doc: | 2854 TODO 2855 type: object.texture 2856 - name: mip_level 2857 doc: | 2858 TODO 2859 type: uint32 2860 - name: origin 2861 doc: | 2862 TODO 2863 type: struct.origin_3D 2864 - name: aspect 2865 doc: | 2866 TODO 2867 type: enum.texture_aspect 2868 - name: texture_binding_layout 2869 doc: | 2870 TODO 2871 type: base_in 2872 members: 2873 - name: sample_type 2874 doc: | 2875 TODO 2876 type: enum.texture_sample_type 2877 - name: view_dimension 2878 doc: | 2879 TODO 2880 type: enum.texture_view_dimension 2881 - name: multisampled 2882 doc: | 2883 TODO 2884 type: bool 2885 - name: texture_descriptor 2886 doc: | 2887 TODO 2888 type: base_in 2889 members: 2890 - name: label 2891 doc: | 2892 TODO 2893 type: string_with_default_empty 2894 - name: usage 2895 doc: | 2896 TODO 2897 type: bitflag.texture_usage 2898 - name: dimension 2899 doc: | 2900 TODO 2901 type: enum.texture_dimension 2902 - name: size 2903 doc: | 2904 TODO 2905 type: struct.extent_3D 2906 - name: format 2907 doc: | 2908 TODO 2909 type: enum.texture_format 2910 - name: mip_level_count 2911 doc: | 2912 TODO 2913 type: uint32 2914 - name: sample_count 2915 doc: | 2916 TODO 2917 type: uint32 2918 - name: view_formats 2919 doc: | 2920 TODO 2921 type: array<enum.texture_format> 2922 pointer: immutable 2923 - name: texture_view_descriptor 2924 doc: | 2925 TODO 2926 type: base_in 2927 members: 2928 - name: label 2929 doc: | 2930 TODO 2931 type: string_with_default_empty 2932 - name: format 2933 doc: | 2934 TODO 2935 type: enum.texture_format 2936 - name: dimension 2937 doc: | 2938 TODO 2939 type: enum.texture_view_dimension 2940 - name: base_mip_level 2941 doc: | 2942 TODO 2943 type: uint32 2944 - name: mip_level_count 2945 doc: | 2946 TODO 2947 type: uint32 2948 - name: base_array_layer 2949 doc: | 2950 TODO 2951 type: uint32 2952 - name: array_layer_count 2953 doc: | 2954 TODO 2955 type: uint32 2956 - name: aspect 2957 doc: | 2958 TODO 2959 type: enum.texture_aspect 2960 - name: usage 2961 doc: | 2962 TODO 2963 type: bitflag.texture_usage 2964 - name: vertex_attribute 2965 doc: | 2966 TODO 2967 type: standalone 2968 members: 2969 - name: format 2970 doc: | 2971 TODO 2972 type: enum.vertex_format 2973 - name: offset 2974 doc: | 2975 TODO 2976 type: uint64 2977 - name: shader_location 2978 doc: | 2979 TODO 2980 type: uint32 2981 - name: vertex_buffer_layout 2982 doc: | 2983 TODO 2984 type: standalone 2985 members: 2986 - name: step_mode 2987 doc: | 2988 The step mode for the vertex buffer. If @ref WGPUVertexStepMode_VertexBufferNotUsed, 2989 indicates a "hole" in the parent @ref WGPUVertexState `buffers` array: 2990 the pipeline does not use a vertex buffer at this `location`. 2991 type: enum.vertex_step_mode 2992 - name: array_stride 2993 doc: | 2994 TODO 2995 type: uint64 2996 - name: attributes 2997 doc: | 2998 TODO 2999 type: array<struct.vertex_attribute> 3000 pointer: immutable 3001 - name: vertex_state 3002 doc: | 3003 TODO 3004 type: base_in 3005 members: 3006 - name: module 3007 doc: | 3008 TODO 3009 type: object.shader_module 3010 - name: entry_point 3011 doc: | 3012 TODO 3013 type: nullable_string 3014 - name: constants 3015 doc: | 3016 TODO 3017 type: array<struct.constant_entry> 3018 pointer: immutable 3019 - name: buffers 3020 doc: | 3021 TODO 3022 type: array<struct.vertex_buffer_layout> 3023 pointer: immutable 3024 callbacks: 3025 - name: buffer_map 3026 doc: | 3027 TODO 3028 style: callback_mode 3029 args: 3030 - name: status 3031 doc: | 3032 TODO 3033 type: enum.map_async_status 3034 - name: message 3035 doc: | 3036 TODO 3037 type: out_string 3038 passed_with_ownership: false 3039 - name: compilation_info 3040 doc: | 3041 TODO 3042 style: callback_mode 3043 args: 3044 - name: status 3045 doc: | 3046 TODO 3047 type: enum.compilation_info_request_status 3048 - name: compilation_info 3049 doc: | 3050 TODO 3051 type: struct.compilation_info 3052 pointer: immutable 3053 passed_with_ownership: false 3054 - name: create_compute_pipeline_async 3055 doc: | 3056 TODO 3057 style: callback_mode 3058 args: 3059 - name: status 3060 doc: | 3061 TODO 3062 type: enum.create_pipeline_async_status 3063 - name: pipeline 3064 doc: | 3065 TODO 3066 type: object.compute_pipeline 3067 passed_with_ownership: true 3068 - name: message 3069 doc: | 3070 TODO 3071 type: out_string 3072 - name: create_render_pipeline_async 3073 doc: | 3074 TODO 3075 style: callback_mode 3076 args: 3077 - name: status 3078 doc: | 3079 TODO 3080 type: enum.create_pipeline_async_status 3081 - name: pipeline 3082 doc: | 3083 TODO 3084 type: object.render_pipeline 3085 passed_with_ownership: true 3086 - name: message 3087 doc: | 3088 TODO 3089 type: out_string 3090 - name: device_lost 3091 doc: TODO 3092 style: callback_mode 3093 args: 3094 - name: device 3095 doc: | 3096 Reference to the device which was lost. If, and only if, the `reason` is @ref WGPUDeviceLostReason_FailedCreation, this is a non-null pointer to a null @ref WGPUDevice. 3097 type: object.device 3098 pointer: immutable 3099 passed_with_ownership: false 3100 - name: reason 3101 doc: | 3102 TODO 3103 type: enum.device_lost_reason 3104 - name: message 3105 doc: | 3106 TODO 3107 type: out_string 3108 passed_with_ownership: false 3109 - name: pop_error_scope 3110 doc: | 3111 TODO 3112 style: callback_mode 3113 args: 3114 - name: status 3115 doc: | 3116 See @ref WGPUPopErrorScopeStatus. 3117 type: enum.pop_error_scope_status 3118 - name: type 3119 doc: | 3120 The type of the error caught by the scope, or @ref WGPUErrorType_NoError if there was none. 3121 If the `status` is not @ref WGPUPopErrorScopeStatus_Success, this is @ref WGPUErrorType_NoError. 3122 type: enum.error_type 3123 - name: message 3124 doc: | 3125 If the `type` is not @ref WGPUErrorType_NoError, this is a non-empty @ref LocalizableHumanReadableMessageString; 3126 otherwise, this is an empty string. 3127 type: out_string 3128 passed_with_ownership: false 3129 - name: queue_work_done 3130 doc: | 3131 TODO 3132 style: callback_mode 3133 args: 3134 - name: status 3135 doc: | 3136 TODO 3137 type: enum.queue_work_done_status 3138 - name: request_adapter 3139 doc: | 3140 TODO 3141 style: callback_mode 3142 args: 3143 - name: status 3144 doc: | 3145 TODO 3146 type: enum.request_adapter_status 3147 - name: adapter 3148 doc: | 3149 TODO 3150 type: object.adapter 3151 passed_with_ownership: true 3152 - name: message 3153 doc: | 3154 TODO 3155 type: out_string 3156 passed_with_ownership: false 3157 - name: request_device 3158 doc: | 3159 TODO 3160 style: callback_mode 3161 args: 3162 - name: status 3163 doc: | 3164 TODO 3165 type: enum.request_device_status 3166 - name: device 3167 doc: | 3168 TODO 3169 type: object.device 3170 passed_with_ownership: true 3171 - name: message 3172 doc: | 3173 TODO 3174 type: out_string 3175 passed_with_ownership: false 3176 - name: uncaptured_error 3177 doc: | 3178 TODO 3179 style: immediate 3180 args: 3181 - name: device 3182 doc: | 3183 TODO 3184 type: object.device 3185 pointer: immutable 3186 passed_with_ownership: false 3187 - name: type 3188 doc: | 3189 TODO 3190 type: enum.error_type 3191 - name: message 3192 doc: | 3193 TODO 3194 type: out_string 3195 passed_with_ownership: false 3196 functions: 3197 - name: create_instance 3198 doc: Create a WGPUInstance 3199 returns: 3200 doc: | 3201 TODO 3202 type: object.instance 3203 passed_with_ownership: true 3204 args: 3205 - name: descriptor 3206 doc: | 3207 TODO 3208 type: struct.instance_descriptor 3209 pointer: immutable 3210 optional: true 3211 - name: get_instance_capabilities 3212 doc: Query the supported instance capabilities. 3213 returns: 3214 doc: Indicates if there was an @ref OutStructChainError. 3215 type: enum.status 3216 args: 3217 - name: capabilities 3218 doc: The supported instance capabilities 3219 type: struct.instance_capabilities 3220 pointer: mutable 3221 objects: 3222 - name: adapter 3223 doc: | 3224 TODO 3225 methods: 3226 - name: get_limits 3227 doc: | 3228 TODO 3229 returns: 3230 doc: Indicates if there was an @ref OutStructChainError. 3231 type: enum.status 3232 args: 3233 - name: limits 3234 doc: | 3235 TODO 3236 type: struct.limits 3237 pointer: mutable 3238 - name: has_feature 3239 doc: | 3240 TODO 3241 returns: 3242 doc: | 3243 TODO 3244 type: bool 3245 args: 3246 - name: feature 3247 doc: | 3248 TODO 3249 type: enum.feature_name 3250 - name: get_features 3251 doc: | 3252 Get the list of @ref WGPUFeatureName values supported by the adapter. 3253 args: 3254 - name: features 3255 doc: | 3256 TODO 3257 type: struct.supported_features 3258 pointer: mutable 3259 passed_with_ownership: true 3260 - name: get_info 3261 doc: | 3262 TODO 3263 returns: 3264 doc: Indicates if there was an @ref OutStructChainError. 3265 type: enum.status 3266 args: 3267 - name: info 3268 doc: | 3269 TODO 3270 type: struct.adapter_info 3271 pointer: mutable 3272 passed_with_ownership: true 3273 - name: request_device 3274 doc: | 3275 TODO 3276 callback: callback.request_device 3277 args: 3278 - name: descriptor 3279 doc: | 3280 TODO 3281 type: struct.device_descriptor 3282 pointer: immutable 3283 optional: true 3284 - name: bind_group 3285 doc: | 3286 TODO 3287 methods: 3288 - name: set_label 3289 doc: | 3290 TODO 3291 args: 3292 - name: label 3293 doc: | 3294 TODO 3295 type: string_with_default_empty 3296 - name: bind_group_layout 3297 doc: | 3298 TODO 3299 methods: 3300 - name: set_label 3301 doc: | 3302 TODO 3303 args: 3304 - name: label 3305 doc: | 3306 TODO 3307 type: string_with_default_empty 3308 - name: buffer 3309 doc: | 3310 TODO 3311 methods: 3312 - name: map_async 3313 doc: | 3314 TODO 3315 callback: callback.buffer_map 3316 args: 3317 - name: mode 3318 doc: | 3319 TODO 3320 type: bitflag.map_mode 3321 - name: offset 3322 doc: | 3323 TODO 3324 type: usize 3325 - name: size 3326 doc: | 3327 TODO 3328 type: usize 3329 - name: get_mapped_range 3330 doc: | 3331 TODO 3332 returns: 3333 doc: | 3334 Returns a mutable pointer to beginning of the mapped range. 3335 Returns `NULL` with @ref ImplementationDefinedLogging if: 3336 3337 - There is any content-timeline error as defined in the WebGPU specification for `getMappedRange()` (alignments, overlaps, etc.) 3338 - The buffer is not mapped with @ref WGPUMapMode_Write. 3339 type: c_void 3340 pointer: mutable 3341 args: 3342 - name: offset 3343 doc: | 3344 Byte offset relative to the beginning of the buffer. 3345 type: usize 3346 - name: size 3347 doc: | 3348 Byte size of the range to get. The returned pointer is valid for exactly this many bytes. 3349 type: usize 3350 - name: get_const_mapped_range 3351 doc: | 3352 TODO 3353 returns: 3354 doc: | 3355 Returns a const pointer to beginning of the mapped range. 3356 It must not be written; writing to this range causes undefined behavior. 3357 Returns `NULL` with @ref ImplementationDefinedLogging if: 3358 3359 - There is any content-timeline error as defined in the WebGPU specification for `getMappedRange()` (alignments, overlaps, etc.) 3360 **except** for overlaps with other *const* ranges, which are allowed in C. 3361 (JS does not allow this because const ranges do not exist.) 3362 type: c_void 3363 pointer: immutable 3364 args: 3365 - name: offset 3366 doc: | 3367 Byte offset relative to the beginning of the buffer. 3368 type: usize 3369 - name: size 3370 doc: | 3371 Byte size of the range to get. The returned pointer is valid for exactly this many bytes. 3372 type: usize 3373 - name: set_label 3374 doc: | 3375 TODO 3376 args: 3377 - name: label 3378 doc: | 3379 TODO 3380 type: string_with_default_empty 3381 - name: get_usage 3382 doc: | 3383 TODO 3384 returns: 3385 doc: | 3386 TODO 3387 type: bitflag.buffer_usage 3388 - name: get_size 3389 doc: | 3390 TODO 3391 returns: 3392 doc: | 3393 TODO 3394 type: uint64 3395 - name: get_map_state 3396 doc: | 3397 TODO 3398 returns: 3399 doc: | 3400 TODO 3401 type: enum.buffer_map_state 3402 - name: unmap 3403 doc: | 3404 TODO 3405 - name: destroy 3406 doc: | 3407 TODO 3408 - name: command_buffer 3409 doc: | 3410 TODO 3411 methods: 3412 - name: set_label 3413 doc: | 3414 TODO 3415 args: 3416 - name: label 3417 doc: | 3418 TODO 3419 type: string_with_default_empty 3420 - name: command_encoder 3421 doc: | 3422 TODO 3423 methods: 3424 - name: finish 3425 doc: | 3426 TODO 3427 returns: 3428 doc: | 3429 TODO 3430 type: object.command_buffer 3431 passed_with_ownership: true 3432 args: 3433 - name: descriptor 3434 doc: | 3435 TODO 3436 type: struct.command_buffer_descriptor 3437 pointer: immutable 3438 optional: true 3439 - name: begin_compute_pass 3440 doc: | 3441 TODO 3442 returns: 3443 doc: | 3444 TODO 3445 type: object.compute_pass_encoder 3446 passed_with_ownership: true 3447 args: 3448 - name: descriptor 3449 doc: | 3450 TODO 3451 type: struct.compute_pass_descriptor 3452 pointer: immutable 3453 optional: true 3454 - name: begin_render_pass 3455 doc: | 3456 TODO 3457 returns: 3458 doc: | 3459 TODO 3460 type: object.render_pass_encoder 3461 passed_with_ownership: true 3462 args: 3463 - name: descriptor 3464 doc: | 3465 TODO 3466 type: struct.render_pass_descriptor 3467 pointer: immutable 3468 - name: copy_buffer_to_buffer 3469 doc: | 3470 TODO 3471 args: 3472 - name: source 3473 doc: | 3474 TODO 3475 type: object.buffer 3476 - name: source_offset 3477 doc: | 3478 TODO 3479 type: uint64 3480 - name: destination 3481 doc: | 3482 TODO 3483 type: object.buffer 3484 - name: destination_offset 3485 doc: | 3486 TODO 3487 type: uint64 3488 - name: size 3489 doc: | 3490 TODO 3491 type: uint64 3492 - name: copy_buffer_to_texture 3493 doc: | 3494 TODO 3495 args: 3496 - name: source 3497 doc: | 3498 TODO 3499 type: struct.texel_copy_buffer_info 3500 pointer: immutable 3501 - name: destination 3502 doc: | 3503 TODO 3504 type: struct.texel_copy_texture_info 3505 pointer: immutable 3506 - name: copy_size 3507 doc: | 3508 TODO 3509 type: struct.extent_3D 3510 pointer: immutable 3511 - name: copy_texture_to_buffer 3512 doc: | 3513 TODO 3514 args: 3515 - name: source 3516 doc: | 3517 TODO 3518 type: struct.texel_copy_texture_info 3519 pointer: immutable 3520 - name: destination 3521 doc: | 3522 TODO 3523 type: struct.texel_copy_buffer_info 3524 pointer: immutable 3525 - name: copy_size 3526 doc: | 3527 TODO 3528 type: struct.extent_3D 3529 pointer: immutable 3530 - name: copy_texture_to_texture 3531 doc: | 3532 TODO 3533 args: 3534 - name: source 3535 doc: | 3536 TODO 3537 type: struct.texel_copy_texture_info 3538 pointer: immutable 3539 - name: destination 3540 doc: | 3541 TODO 3542 type: struct.texel_copy_texture_info 3543 pointer: immutable 3544 - name: copy_size 3545 doc: | 3546 TODO 3547 type: struct.extent_3D 3548 pointer: immutable 3549 - name: clear_buffer 3550 doc: | 3551 TODO 3552 args: 3553 - name: buffer 3554 doc: | 3555 TODO 3556 type: object.buffer 3557 - name: offset 3558 doc: | 3559 TODO 3560 type: uint64 3561 - name: size 3562 doc: | 3563 TODO 3564 type: uint64 3565 - name: insert_debug_marker 3566 doc: | 3567 TODO 3568 args: 3569 - name: marker_label 3570 doc: | 3571 TODO 3572 type: string_with_default_empty 3573 - name: pop_debug_group 3574 doc: | 3575 TODO 3576 - name: push_debug_group 3577 doc: | 3578 TODO 3579 args: 3580 - name: group_label 3581 doc: | 3582 TODO 3583 type: string_with_default_empty 3584 - name: resolve_query_set 3585 doc: | 3586 TODO 3587 args: 3588 - name: query_set 3589 doc: | 3590 TODO 3591 type: object.query_set 3592 - name: first_query 3593 doc: | 3594 TODO 3595 type: uint32 3596 - name: query_count 3597 doc: | 3598 TODO 3599 type: uint32 3600 - name: destination 3601 doc: | 3602 TODO 3603 type: object.buffer 3604 - name: destination_offset 3605 doc: | 3606 TODO 3607 type: uint64 3608 - name: write_timestamp 3609 doc: | 3610 TODO 3611 args: 3612 - name: query_set 3613 doc: | 3614 TODO 3615 type: object.query_set 3616 - name: query_index 3617 doc: | 3618 TODO 3619 type: uint32 3620 - name: set_label 3621 doc: | 3622 TODO 3623 args: 3624 - name: label 3625 doc: | 3626 TODO 3627 type: string_with_default_empty 3628 - name: compute_pass_encoder 3629 doc: | 3630 TODO 3631 methods: 3632 - name: insert_debug_marker 3633 doc: | 3634 TODO 3635 args: 3636 - name: marker_label 3637 doc: | 3638 TODO 3639 type: string_with_default_empty 3640 - name: pop_debug_group 3641 doc: | 3642 TODO 3643 - name: push_debug_group 3644 doc: | 3645 TODO 3646 args: 3647 - name: group_label 3648 doc: | 3649 TODO 3650 type: string_with_default_empty 3651 - name: set_pipeline 3652 doc: | 3653 TODO 3654 args: 3655 - name: pipeline 3656 doc: | 3657 TODO 3658 type: object.compute_pipeline 3659 - name: set_bind_group 3660 doc: | 3661 TODO 3662 args: 3663 - name: group_index 3664 doc: | 3665 TODO 3666 type: uint32 3667 - name: group 3668 doc: | 3669 TODO 3670 type: object.bind_group 3671 optional: true 3672 - name: dynamic_offsets 3673 doc: | 3674 TODO 3675 type: array<uint32> 3676 pointer: immutable 3677 - name: dispatch_workgroups 3678 doc: | 3679 TODO 3680 args: 3681 - name: workgroupCountX 3682 doc: | 3683 TODO 3684 type: uint32 3685 - name: workgroupCountY 3686 doc: | 3687 TODO 3688 type: uint32 3689 - name: workgroupCountZ 3690 doc: | 3691 TODO 3692 type: uint32 3693 - name: dispatch_workgroups_indirect 3694 doc: | 3695 TODO 3696 args: 3697 - name: indirect_buffer 3698 doc: | 3699 TODO 3700 type: object.buffer 3701 - name: indirect_offset 3702 doc: | 3703 TODO 3704 type: uint64 3705 - name: end 3706 doc: | 3707 TODO 3708 - name: set_label 3709 doc: | 3710 TODO 3711 args: 3712 - name: label 3713 doc: | 3714 TODO 3715 type: string_with_default_empty 3716 - name: compute_pipeline 3717 doc: | 3718 TODO 3719 methods: 3720 - name: get_bind_group_layout 3721 doc: | 3722 TODO 3723 returns: 3724 doc: | 3725 TODO 3726 type: object.bind_group_layout 3727 passed_with_ownership: true 3728 args: 3729 - name: group_index 3730 doc: | 3731 TODO 3732 type: uint32 3733 - name: set_label 3734 doc: | 3735 TODO 3736 args: 3737 - name: label 3738 doc: | 3739 TODO 3740 type: string_with_default_empty 3741 - name: device 3742 doc: | 3743 TODO 3744 methods: 3745 - name: create_bind_group 3746 doc: | 3747 TODO 3748 returns: 3749 doc: | 3750 TODO 3751 type: object.bind_group 3752 passed_with_ownership: true 3753 args: 3754 - name: descriptor 3755 doc: | 3756 TODO 3757 type: struct.bind_group_descriptor 3758 pointer: immutable 3759 - name: create_bind_group_layout 3760 doc: | 3761 TODO 3762 returns: 3763 doc: | 3764 TODO 3765 type: object.bind_group_layout 3766 passed_with_ownership: true 3767 args: 3768 - name: descriptor 3769 doc: | 3770 TODO 3771 type: struct.bind_group_layout_descriptor 3772 pointer: immutable 3773 - name: create_buffer 3774 doc: | 3775 TODO 3776 returns: 3777 doc: | 3778 TODO 3779 type: object.buffer 3780 passed_with_ownership: true 3781 args: 3782 - name: descriptor 3783 doc: | 3784 TODO 3785 type: struct.buffer_descriptor 3786 pointer: immutable 3787 - name: create_command_encoder 3788 doc: | 3789 TODO 3790 returns: 3791 doc: | 3792 TODO 3793 type: object.command_encoder 3794 passed_with_ownership: true 3795 args: 3796 - name: descriptor 3797 doc: | 3798 TODO 3799 type: struct.command_encoder_descriptor 3800 pointer: immutable 3801 optional: true 3802 - name: create_compute_pipeline 3803 doc: | 3804 TODO 3805 returns: 3806 doc: | 3807 TODO 3808 type: object.compute_pipeline 3809 passed_with_ownership: true 3810 args: 3811 - name: descriptor 3812 doc: | 3813 TODO 3814 type: struct.compute_pipeline_descriptor 3815 pointer: immutable 3816 - name: create_compute_pipeline_async 3817 doc: | 3818 TODO 3819 callback: callback.create_compute_pipeline_async 3820 args: 3821 - name: descriptor 3822 doc: | 3823 TODO 3824 type: struct.compute_pipeline_descriptor 3825 pointer: immutable 3826 - name: create_pipeline_layout 3827 doc: | 3828 TODO 3829 returns: 3830 doc: | 3831 TODO 3832 type: object.pipeline_layout 3833 passed_with_ownership: true 3834 args: 3835 - name: descriptor 3836 doc: | 3837 TODO 3838 type: struct.pipeline_layout_descriptor 3839 pointer: immutable 3840 - name: create_query_set 3841 doc: | 3842 TODO 3843 returns: 3844 doc: | 3845 TODO 3846 type: object.query_set 3847 passed_with_ownership: true 3848 args: 3849 - name: descriptor 3850 doc: | 3851 TODO 3852 type: struct.query_set_descriptor 3853 pointer: immutable 3854 - name: create_render_pipeline_async 3855 doc: | 3856 TODO 3857 callback: callback.create_render_pipeline_async 3858 args: 3859 - name: descriptor 3860 doc: | 3861 TODO 3862 type: struct.render_pipeline_descriptor 3863 pointer: immutable 3864 - name: create_render_bundle_encoder 3865 doc: | 3866 TODO 3867 returns: 3868 doc: | 3869 TODO 3870 type: object.render_bundle_encoder 3871 passed_with_ownership: true 3872 args: 3873 - name: descriptor 3874 doc: | 3875 TODO 3876 type: struct.render_bundle_encoder_descriptor 3877 pointer: immutable 3878 - name: create_render_pipeline 3879 doc: | 3880 TODO 3881 returns: 3882 doc: | 3883 TODO 3884 type: object.render_pipeline 3885 passed_with_ownership: true 3886 args: 3887 - name: descriptor 3888 doc: | 3889 TODO 3890 type: struct.render_pipeline_descriptor 3891 pointer: immutable 3892 - name: create_sampler 3893 doc: | 3894 TODO 3895 returns: 3896 doc: | 3897 TODO 3898 type: object.sampler 3899 passed_with_ownership: true 3900 args: 3901 - name: descriptor 3902 doc: | 3903 TODO 3904 type: struct.sampler_descriptor 3905 pointer: immutable 3906 optional: true 3907 - name: create_shader_module 3908 doc: | 3909 TODO 3910 returns: 3911 doc: | 3912 TODO 3913 type: object.shader_module 3914 passed_with_ownership: true 3915 args: 3916 - name: descriptor 3917 doc: | 3918 TODO 3919 type: struct.shader_module_descriptor 3920 pointer: immutable 3921 - name: create_texture 3922 doc: | 3923 TODO 3924 returns: 3925 doc: | 3926 TODO 3927 type: object.texture 3928 passed_with_ownership: true 3929 args: 3930 - name: descriptor 3931 doc: | 3932 TODO 3933 type: struct.texture_descriptor 3934 pointer: immutable 3935 - name: destroy 3936 doc: | 3937 TODO 3938 - name: get_lost_future 3939 doc: "" 3940 returns: 3941 doc: | 3942 The @ref WGPUFuture for the device-lost event of the device. 3943 type: struct.future 3944 - name: get_limits 3945 doc: | 3946 TODO 3947 returns: 3948 doc: Indicates if there was an @ref OutStructChainError. 3949 type: enum.status 3950 args: 3951 - name: limits 3952 doc: | 3953 TODO 3954 type: struct.limits 3955 pointer: mutable 3956 - name: has_feature 3957 doc: | 3958 TODO 3959 returns: 3960 doc: | 3961 TODO 3962 type: bool 3963 args: 3964 - name: feature 3965 doc: | 3966 TODO 3967 type: enum.feature_name 3968 - name: get_features 3969 doc: | 3970 Get the list of @ref WGPUFeatureName values supported by the device. 3971 args: 3972 - name: features 3973 doc: | 3974 TODO 3975 type: struct.supported_features 3976 pointer: mutable 3977 passed_with_ownership: true 3978 - name: get_adapter_info 3979 doc: | 3980 TODO 3981 returns: 3982 doc: | 3983 TODO 3984 type: struct.adapter_info 3985 passed_with_ownership: true 3986 - name: get_queue 3987 doc: | 3988 TODO 3989 returns: 3990 doc: | 3991 TODO 3992 type: object.queue 3993 passed_with_ownership: true 3994 - name: push_error_scope 3995 doc: | 3996 TODO 3997 args: 3998 - name: filter 3999 doc: | 4000 TODO 4001 type: enum.error_filter 4002 - name: pop_error_scope 4003 doc: | 4004 TODO 4005 callback: callback.pop_error_scope 4006 - name: set_label 4007 doc: | 4008 TODO 4009 args: 4010 - name: label 4011 doc: | 4012 TODO 4013 type: string_with_default_empty 4014 - name: instance 4015 doc: | 4016 TODO 4017 methods: 4018 - name: create_surface 4019 doc: Creates a @ref WGPUSurface, see @ref Surface-Creation for more details. 4020 returns: 4021 doc: A new @ref WGPUSurface for this descriptor (or an error @ref WGPUSurface). 4022 type: object.surface 4023 passed_with_ownership: true 4024 args: 4025 - name: descriptor 4026 doc: The description of the @ref WGPUSurface to create. 4027 type: struct.surface_descriptor 4028 pointer: immutable 4029 - name: get_WGSL_language_features 4030 doc: | 4031 Get the list of @ref WGPUWGSLLanguageFeatureName values supported by the instance. 4032 returns: 4033 doc: | 4034 TODO 4035 type: enum.status 4036 args: 4037 - name: features 4038 doc: | 4039 TODO 4040 type: struct.supported_WGSL_language_features 4041 pointer: mutable 4042 - name: has_WGSL_language_feature 4043 doc: | 4044 TODO 4045 returns: 4046 doc: | 4047 TODO 4048 type: bool 4049 args: 4050 - name: feature 4051 doc: | 4052 TODO 4053 type: enum.WGSL_language_feature_name 4054 - name: process_events 4055 doc: | 4056 Processes asynchronous events on this `WGPUInstance`, calling any callbacks for asynchronous operations created with `::WGPUCallbackMode_AllowProcessEvents`. 4057 4058 See @ref Process-Events for more information. 4059 - name: request_adapter 4060 doc: | 4061 TODO 4062 callback: callback.request_adapter 4063 args: 4064 - name: options 4065 doc: | 4066 TODO 4067 type: struct.request_adapter_options 4068 pointer: immutable 4069 optional: true 4070 - name: wait_any 4071 doc: | 4072 Wait for at least one WGPUFuture in `futures` to complete, and call callbacks of the respective completed asynchronous operations. 4073 4074 See @ref Wait-Any for more information. 4075 returns: 4076 doc: | 4077 TODO 4078 type: enum.wait_status 4079 args: 4080 - name: future_count 4081 doc: | 4082 TODO 4083 type: usize 4084 - name: futures 4085 doc: | 4086 TODO 4087 type: struct.future_wait_info 4088 pointer: mutable 4089 optional: true 4090 - name: timeout_NS 4091 doc: | 4092 TODO 4093 type: uint64 4094 - name: pipeline_layout 4095 doc: | 4096 TODO 4097 methods: 4098 - name: set_label 4099 doc: | 4100 TODO 4101 args: 4102 - name: label 4103 doc: | 4104 TODO 4105 type: string_with_default_empty 4106 - name: query_set 4107 doc: | 4108 TODO 4109 methods: 4110 - name: set_label 4111 doc: | 4112 TODO 4113 args: 4114 - name: label 4115 doc: | 4116 TODO 4117 type: string_with_default_empty 4118 - name: get_type 4119 doc: | 4120 TODO 4121 returns: 4122 doc: | 4123 TODO 4124 type: enum.query_type 4125 - name: get_count 4126 doc: | 4127 TODO 4128 returns: 4129 doc: | 4130 TODO 4131 type: uint32 4132 - name: destroy 4133 doc: | 4134 TODO 4135 - name: queue 4136 doc: | 4137 TODO 4138 methods: 4139 - name: submit 4140 doc: | 4141 TODO 4142 args: 4143 - name: commands 4144 doc: | 4145 TODO 4146 type: array<object.command_buffer> 4147 pointer: immutable 4148 - name: on_submitted_work_done 4149 doc: | 4150 TODO 4151 callback: callback.queue_work_done 4152 - name: write_buffer 4153 doc: | 4154 Produces a @ref DeviceError both content-timeline (`size` alignment) and device-timeline 4155 errors defined by the WebGPU specification. 4156 args: 4157 - name: buffer 4158 doc: | 4159 TODO 4160 type: object.buffer 4161 - name: buffer_offset 4162 doc: | 4163 TODO 4164 type: uint64 4165 - name: data 4166 doc: | 4167 TODO 4168 type: c_void 4169 pointer: immutable 4170 - name: size 4171 doc: | 4172 TODO 4173 type: usize 4174 - name: write_texture 4175 doc: | 4176 TODO 4177 args: 4178 - name: destination 4179 doc: | 4180 TODO 4181 type: struct.texel_copy_texture_info 4182 pointer: immutable 4183 - name: data 4184 doc: | 4185 TODO 4186 type: c_void 4187 pointer: immutable 4188 - name: data_size 4189 doc: | 4190 TODO 4191 type: usize 4192 - name: data_layout 4193 doc: | 4194 TODO 4195 type: struct.texel_copy_buffer_layout 4196 pointer: immutable 4197 - name: write_size 4198 doc: | 4199 TODO 4200 type: struct.extent_3D 4201 pointer: immutable 4202 - name: set_label 4203 doc: | 4204 TODO 4205 args: 4206 - name: label 4207 doc: | 4208 TODO 4209 type: string_with_default_empty 4210 - name: render_bundle 4211 doc: | 4212 TODO 4213 methods: 4214 - name: set_label 4215 doc: | 4216 TODO 4217 args: 4218 - name: label 4219 doc: | 4220 TODO 4221 type: string_with_default_empty 4222 - name: render_bundle_encoder 4223 doc: | 4224 TODO 4225 methods: 4226 - name: set_pipeline 4227 doc: | 4228 TODO 4229 args: 4230 - name: pipeline 4231 doc: | 4232 TODO 4233 type: object.render_pipeline 4234 - name: set_bind_group 4235 doc: | 4236 TODO 4237 args: 4238 - name: group_index 4239 doc: | 4240 TODO 4241 type: uint32 4242 - name: group 4243 doc: | 4244 TODO 4245 type: object.bind_group 4246 optional: true 4247 - name: dynamic_offsets 4248 doc: | 4249 TODO 4250 type: array<uint32> 4251 pointer: immutable 4252 - name: draw 4253 doc: | 4254 TODO 4255 args: 4256 - name: vertex_count 4257 doc: | 4258 TODO 4259 type: uint32 4260 - name: instance_count 4261 doc: | 4262 TODO 4263 type: uint32 4264 - name: first_vertex 4265 doc: | 4266 TODO 4267 type: uint32 4268 - name: first_instance 4269 doc: | 4270 TODO 4271 type: uint32 4272 - name: draw_indexed 4273 doc: | 4274 TODO 4275 args: 4276 - name: index_count 4277 doc: | 4278 TODO 4279 type: uint32 4280 - name: instance_count 4281 doc: | 4282 TODO 4283 type: uint32 4284 - name: first_index 4285 doc: | 4286 TODO 4287 type: uint32 4288 - name: base_vertex 4289 doc: | 4290 TODO 4291 type: int32 4292 - name: first_instance 4293 doc: | 4294 TODO 4295 type: uint32 4296 - name: draw_indirect 4297 doc: | 4298 TODO 4299 args: 4300 - name: indirect_buffer 4301 doc: | 4302 TODO 4303 type: object.buffer 4304 - name: indirect_offset 4305 doc: | 4306 TODO 4307 type: uint64 4308 - name: draw_indexed_indirect 4309 doc: | 4310 TODO 4311 args: 4312 - name: indirect_buffer 4313 doc: | 4314 TODO 4315 type: object.buffer 4316 - name: indirect_offset 4317 doc: | 4318 TODO 4319 type: uint64 4320 - name: insert_debug_marker 4321 doc: | 4322 TODO 4323 args: 4324 - name: marker_label 4325 doc: | 4326 TODO 4327 type: string_with_default_empty 4328 - name: pop_debug_group 4329 doc: | 4330 TODO 4331 - name: push_debug_group 4332 doc: | 4333 TODO 4334 args: 4335 - name: group_label 4336 doc: | 4337 TODO 4338 type: string_with_default_empty 4339 - name: set_vertex_buffer 4340 doc: | 4341 TODO 4342 args: 4343 - name: slot 4344 doc: | 4345 TODO 4346 type: uint32 4347 - name: buffer 4348 doc: | 4349 TODO 4350 type: object.buffer 4351 optional: true 4352 - name: offset 4353 doc: | 4354 TODO 4355 type: uint64 4356 - name: size 4357 doc: | 4358 TODO 4359 type: uint64 4360 - name: set_index_buffer 4361 doc: | 4362 TODO 4363 args: 4364 - name: buffer 4365 doc: | 4366 TODO 4367 type: object.buffer 4368 - name: format 4369 doc: | 4370 TODO 4371 type: enum.index_format 4372 - name: offset 4373 doc: | 4374 TODO 4375 type: uint64 4376 - name: size 4377 doc: | 4378 TODO 4379 type: uint64 4380 - name: finish 4381 doc: | 4382 TODO 4383 returns: 4384 doc: | 4385 TODO 4386 type: object.render_bundle 4387 passed_with_ownership: true 4388 args: 4389 - name: descriptor 4390 doc: | 4391 TODO 4392 type: struct.render_bundle_descriptor 4393 pointer: immutable 4394 optional: true 4395 - name: set_label 4396 doc: | 4397 TODO 4398 args: 4399 - name: label 4400 doc: | 4401 TODO 4402 type: string_with_default_empty 4403 - name: render_pass_encoder 4404 doc: | 4405 TODO 4406 methods: 4407 - name: set_pipeline 4408 doc: | 4409 TODO 4410 args: 4411 - name: pipeline 4412 doc: | 4413 TODO 4414 type: object.render_pipeline 4415 - name: set_bind_group 4416 doc: | 4417 TODO 4418 args: 4419 - name: group_index 4420 doc: | 4421 TODO 4422 type: uint32 4423 - name: group 4424 doc: | 4425 TODO 4426 type: object.bind_group 4427 optional: true 4428 - name: dynamic_offsets 4429 doc: | 4430 TODO 4431 type: array<uint32> 4432 pointer: immutable 4433 - name: draw 4434 doc: | 4435 TODO 4436 args: 4437 - name: vertex_count 4438 doc: | 4439 TODO 4440 type: uint32 4441 - name: instance_count 4442 doc: | 4443 TODO 4444 type: uint32 4445 - name: first_vertex 4446 doc: | 4447 TODO 4448 type: uint32 4449 - name: first_instance 4450 doc: | 4451 TODO 4452 type: uint32 4453 - name: draw_indexed 4454 doc: | 4455 TODO 4456 args: 4457 - name: index_count 4458 doc: | 4459 TODO 4460 type: uint32 4461 - name: instance_count 4462 doc: | 4463 TODO 4464 type: uint32 4465 - name: first_index 4466 doc: | 4467 TODO 4468 type: uint32 4469 - name: base_vertex 4470 doc: | 4471 TODO 4472 type: int32 4473 - name: first_instance 4474 doc: | 4475 TODO 4476 type: uint32 4477 - name: draw_indirect 4478 doc: | 4479 TODO 4480 args: 4481 - name: indirect_buffer 4482 doc: | 4483 TODO 4484 type: object.buffer 4485 - name: indirect_offset 4486 doc: | 4487 TODO 4488 type: uint64 4489 - name: draw_indexed_indirect 4490 doc: | 4491 TODO 4492 args: 4493 - name: indirect_buffer 4494 doc: | 4495 TODO 4496 type: object.buffer 4497 - name: indirect_offset 4498 doc: | 4499 TODO 4500 type: uint64 4501 - name: execute_bundles 4502 doc: | 4503 TODO 4504 args: 4505 - name: bundles 4506 doc: | 4507 TODO 4508 type: array<object.render_bundle> 4509 pointer: immutable 4510 - name: insert_debug_marker 4511 doc: | 4512 TODO 4513 args: 4514 - name: marker_label 4515 doc: | 4516 TODO 4517 type: string_with_default_empty 4518 - name: pop_debug_group 4519 doc: | 4520 TODO 4521 - name: push_debug_group 4522 doc: | 4523 TODO 4524 args: 4525 - name: group_label 4526 doc: | 4527 TODO 4528 type: string_with_default_empty 4529 - name: set_stencil_reference 4530 doc: | 4531 TODO 4532 args: 4533 - name: reference 4534 doc: | 4535 TODO 4536 type: uint32 4537 - name: set_blend_constant 4538 doc: | 4539 TODO 4540 args: 4541 - name: color 4542 doc: | 4543 TODO 4544 type: struct.color 4545 pointer: immutable 4546 - name: set_viewport 4547 doc: | 4548 TODO 4549 args: 4550 - name: x 4551 doc: | 4552 TODO 4553 type: float32 4554 - name: y 4555 doc: | 4556 TODO 4557 type: float32 4558 - name: width 4559 doc: | 4560 TODO 4561 type: float32 4562 - name: height 4563 doc: | 4564 TODO 4565 type: float32 4566 - name: min_depth 4567 doc: | 4568 TODO 4569 type: float32 4570 - name: max_depth 4571 doc: | 4572 TODO 4573 type: float32 4574 - name: set_scissor_rect 4575 doc: | 4576 TODO 4577 args: 4578 - name: x 4579 doc: | 4580 TODO 4581 type: uint32 4582 - name: y 4583 doc: | 4584 TODO 4585 type: uint32 4586 - name: width 4587 doc: | 4588 TODO 4589 type: uint32 4590 - name: height 4591 doc: | 4592 TODO 4593 type: uint32 4594 - name: set_vertex_buffer 4595 doc: | 4596 TODO 4597 args: 4598 - name: slot 4599 doc: | 4600 TODO 4601 type: uint32 4602 - name: buffer 4603 doc: | 4604 TODO 4605 type: object.buffer 4606 optional: true 4607 - name: offset 4608 doc: | 4609 TODO 4610 type: uint64 4611 - name: size 4612 doc: | 4613 TODO 4614 type: uint64 4615 - name: set_index_buffer 4616 doc: | 4617 TODO 4618 args: 4619 - name: buffer 4620 doc: | 4621 TODO 4622 type: object.buffer 4623 - name: format 4624 doc: | 4625 TODO 4626 type: enum.index_format 4627 - name: offset 4628 doc: | 4629 TODO 4630 type: uint64 4631 - name: size 4632 doc: | 4633 TODO 4634 type: uint64 4635 - name: begin_occlusion_query 4636 doc: | 4637 TODO 4638 args: 4639 - name: query_index 4640 doc: | 4641 TODO 4642 type: uint32 4643 - name: end_occlusion_query 4644 doc: | 4645 TODO 4646 - name: end 4647 doc: | 4648 TODO 4649 - name: set_label 4650 doc: | 4651 TODO 4652 args: 4653 - name: label 4654 doc: | 4655 TODO 4656 type: string_with_default_empty 4657 - name: render_pipeline 4658 doc: | 4659 TODO 4660 methods: 4661 - name: get_bind_group_layout 4662 doc: | 4663 TODO 4664 returns: 4665 doc: | 4666 TODO 4667 type: object.bind_group_layout 4668 passed_with_ownership: true 4669 args: 4670 - name: group_index 4671 doc: | 4672 TODO 4673 type: uint32 4674 - name: set_label 4675 doc: | 4676 TODO 4677 args: 4678 - name: label 4679 doc: | 4680 TODO 4681 type: string_with_default_empty 4682 - name: sampler 4683 doc: | 4684 TODO 4685 methods: 4686 - name: set_label 4687 doc: | 4688 TODO 4689 args: 4690 - name: label 4691 doc: | 4692 TODO 4693 type: string_with_default_empty 4694 - name: shader_module 4695 doc: | 4696 TODO 4697 methods: 4698 - name: get_compilation_info 4699 doc: | 4700 TODO 4701 callback: callback.compilation_info 4702 - name: set_label 4703 doc: | 4704 TODO 4705 args: 4706 - name: label 4707 doc: | 4708 TODO 4709 type: string_with_default_empty 4710 - name: surface 4711 doc: An object used to continuously present image data to the user, see @ref Surfaces for more details. 4712 methods: 4713 - name: configure 4714 doc: | 4715 Configures parameters for rendering to `surface`. 4716 Produces a @ref DeviceError for all content-timeline errors defined by the WebGPU specification. 4717 4718 See @ref Surface-Configuration for more details. 4719 args: 4720 - name: config 4721 doc: The new configuration to use. 4722 type: struct.surface_configuration 4723 pointer: immutable 4724 - name: get_capabilities 4725 doc: | 4726 Provides information on how `adapter` is able to use `surface`. 4727 See @ref Surface-Capabilities for more details. 4728 returns: 4729 doc: Indicates if there was an @ref OutStructChainError. 4730 type: enum.status 4731 args: 4732 - name: adapter 4733 doc: The @ref WGPUAdapter to get capabilities for presenting to this @ref WGPUSurface. 4734 type: object.adapter 4735 - name: capabilities 4736 doc: | 4737 The structure to fill capabilities in. 4738 It may contain memory allocations so `::wgpuSurfaceCapabilitiesFreeMembers` must be called to avoid memory leaks. 4739 type: struct.surface_capabilities 4740 pointer: mutable 4741 passed_with_ownership: true 4742 - name: get_current_texture 4743 doc: | 4744 Returns the @ref WGPUTexture to render to `surface` this frame along with metadata on the frame. 4745 Returns `NULL` and @ref WGPUSurfaceGetCurrentTextureStatus_Error if the surface is not configured. 4746 4747 See @ref Surface-Presenting for more details. 4748 args: 4749 - name: surface_texture 4750 doc: The structure to fill the @ref WGPUTexture and metadata in. 4751 type: struct.surface_texture 4752 pointer: mutable 4753 - name: present 4754 doc: | 4755 Shows `surface`'s current texture to the user. 4756 See @ref Surface-Presenting for more details. 4757 returns: 4758 doc: | 4759 Returns @ref WGPUStatus_Error if the surface doesn't have a current texture. 4760 type: enum.status 4761 - name: unconfigure 4762 doc: | 4763 Removes the configuration for `surface`. 4764 See @ref Surface-Configuration for more details. 4765 - name: set_label 4766 doc: Modifies the label used to refer to `surface`. 4767 args: 4768 - name: label 4769 doc: The new label. 4770 type: string_with_default_empty 4771 - name: texture 4772 doc: | 4773 TODO 4774 methods: 4775 - name: create_view 4776 doc: | 4777 TODO 4778 returns: 4779 doc: | 4780 TODO 4781 type: object.texture_view 4782 passed_with_ownership: true 4783 args: 4784 - name: descriptor 4785 doc: | 4786 TODO 4787 type: struct.texture_view_descriptor 4788 pointer: immutable 4789 optional: true 4790 - name: set_label 4791 doc: | 4792 TODO 4793 args: 4794 - name: label 4795 doc: | 4796 TODO 4797 type: string_with_default_empty 4798 - name: get_width 4799 doc: | 4800 TODO 4801 returns: 4802 doc: | 4803 TODO 4804 type: uint32 4805 - name: get_height 4806 doc: | 4807 TODO 4808 returns: 4809 doc: | 4810 TODO 4811 type: uint32 4812 - name: get_depth_or_array_layers 4813 doc: | 4814 TODO 4815 returns: 4816 doc: | 4817 TODO 4818 type: uint32 4819 - name: get_mip_level_count 4820 doc: | 4821 TODO 4822 returns: 4823 doc: | 4824 TODO 4825 type: uint32 4826 - name: get_sample_count 4827 doc: | 4828 TODO 4829 returns: 4830 doc: | 4831 TODO 4832 type: uint32 4833 - name: get_dimension 4834 doc: | 4835 TODO 4836 returns: 4837 doc: | 4838 TODO 4839 type: enum.texture_dimension 4840 - name: get_format 4841 doc: | 4842 TODO 4843 returns: 4844 doc: | 4845 TODO 4846 type: enum.texture_format 4847 - name: get_usage 4848 doc: | 4849 TODO 4850 returns: 4851 doc: | 4852 TODO 4853 type: bitflag.texture_usage 4854 - name: destroy 4855 doc: | 4856 TODO 4857 - name: texture_view 4858 doc: | 4859 TODO 4860 methods: 4861 - name: set_label 4862 doc: | 4863 TODO 4864 args: 4865 - name: label 4866 doc: | 4867 TODO 4868 type: string_with_default_empty