1 // Copyright (C) 2018 The Android Open Source Project 2 // Copyright (C) 2018 Google Inc. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 16 // Autogenerated module VkDecoder 17 // (header) generated by protocols/vulkan/xml/genvk.py -registry protocols/vulkan/xml/vk.xml cereal -o stream-servers/vulkan/cereal 18 // Please do not modify directly; 19 // re-run generate-vulkan-sources.sh, 20 // or directly from Python by defining: 21 // VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml 22 // CEREAL_OUTPUT_DIR: Where to put the generated sources. 23 // python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR 24 25 #pragma once 26 27 #include <vulkan/vulkan.h> 28 29 30 #include <memory> 31 32 namespace android { 33 namespace base { 34 class BumpPool; 35 } // namespace android 36 } // namespace base 37 38 39 40 41 42 43 44 class IOStream; 45 46 class VkDecoder { 47 public: 48 VkDecoder(); 49 ~VkDecoder(); 50 void setForSnapshotLoad(bool forSnapshotLoad); 51 size_t decode(void* buf, size_t bufsize, IOStream* stream, uint32_t* seqnoPtr); 52 private: 53 class Impl; 54 std::unique_ptr<Impl> mImpl; 55 }; 56 #ifdef VK_VERSION_1_0 57 #endif 58 #ifdef VK_VERSION_1_1 59 #endif 60 #ifdef VK_VERSION_1_2 61 #endif 62 #ifdef VK_KHR_surface 63 #endif 64 #ifdef VK_KHR_swapchain 65 #endif 66 #ifdef VK_KHR_display 67 #endif 68 #ifdef VK_KHR_display_swapchain 69 #endif 70 #ifdef VK_KHR_xlib_surface 71 #endif 72 #ifdef VK_KHR_xcb_surface 73 #endif 74 #ifdef VK_KHR_wayland_surface 75 #endif 76 #ifdef VK_KHR_android_surface 77 #endif 78 #ifdef VK_KHR_win32_surface 79 #endif 80 #ifdef VK_KHR_sampler_mirror_clamp_to_edge 81 #endif 82 #ifdef VK_KHR_video_queue 83 #endif 84 #ifdef VK_KHR_video_decode_queue 85 #endif 86 #ifdef VK_KHR_dynamic_rendering 87 #endif 88 #ifdef VK_KHR_multiview 89 #endif 90 #ifdef VK_KHR_get_physical_device_properties2 91 #endif 92 #ifdef VK_KHR_device_group 93 #endif 94 #ifdef VK_KHR_shader_draw_parameters 95 #endif 96 #ifdef VK_KHR_maintenance1 97 #endif 98 #ifdef VK_KHR_device_group_creation 99 #endif 100 #ifdef VK_KHR_external_memory_capabilities 101 #endif 102 #ifdef VK_KHR_external_memory 103 #endif 104 #ifdef VK_KHR_external_memory_win32 105 #endif 106 #ifdef VK_KHR_external_memory_fd 107 #endif 108 #ifdef VK_KHR_win32_keyed_mutex 109 #endif 110 #ifdef VK_KHR_external_semaphore_capabilities 111 #endif 112 #ifdef VK_KHR_external_semaphore 113 #endif 114 #ifdef VK_KHR_external_semaphore_win32 115 #endif 116 #ifdef VK_KHR_external_semaphore_fd 117 #endif 118 #ifdef VK_KHR_push_descriptor 119 #endif 120 #ifdef VK_KHR_shader_float16_int8 121 #endif 122 #ifdef VK_KHR_16bit_storage 123 #endif 124 #ifdef VK_KHR_incremental_present 125 #endif 126 #ifdef VK_KHR_descriptor_update_template 127 #endif 128 #ifdef VK_KHR_imageless_framebuffer 129 #endif 130 #ifdef VK_KHR_create_renderpass2 131 #endif 132 #ifdef VK_KHR_shared_presentable_image 133 #endif 134 #ifdef VK_KHR_external_fence_capabilities 135 #endif 136 #ifdef VK_KHR_external_fence 137 #endif 138 #ifdef VK_KHR_external_fence_win32 139 #endif 140 #ifdef VK_KHR_external_fence_fd 141 #endif 142 #ifdef VK_KHR_performance_query 143 #endif 144 #ifdef VK_KHR_maintenance2 145 #endif 146 #ifdef VK_KHR_get_surface_capabilities2 147 #endif 148 #ifdef VK_KHR_variable_pointers 149 #endif 150 #ifdef VK_KHR_get_display_properties2 151 #endif 152 #ifdef VK_KHR_dedicated_allocation 153 #endif 154 #ifdef VK_KHR_storage_buffer_storage_class 155 #endif 156 #ifdef VK_KHR_relaxed_block_layout 157 #endif 158 #ifdef VK_KHR_get_memory_requirements2 159 #endif 160 #ifdef VK_KHR_image_format_list 161 #endif 162 #ifdef VK_KHR_sampler_ycbcr_conversion 163 #endif 164 #ifdef VK_KHR_bind_memory2 165 #endif 166 #ifdef VK_KHR_portability_subset 167 #endif 168 #ifdef VK_KHR_maintenance3 169 #endif 170 #ifdef VK_KHR_draw_indirect_count 171 #endif 172 #ifdef VK_KHR_shader_subgroup_extended_types 173 #endif 174 #ifdef VK_KHR_8bit_storage 175 #endif 176 #ifdef VK_KHR_shader_atomic_int64 177 #endif 178 #ifdef VK_KHR_shader_clock 179 #endif 180 #ifdef VK_KHR_driver_properties 181 #endif 182 #ifdef VK_KHR_shader_float_controls 183 #endif 184 #ifdef VK_KHR_depth_stencil_resolve 185 #endif 186 #ifdef VK_KHR_swapchain_mutable_format 187 #endif 188 #ifdef VK_KHR_timeline_semaphore 189 #endif 190 #ifdef VK_KHR_vulkan_memory_model 191 #endif 192 #ifdef VK_KHR_shader_terminate_invocation 193 #endif 194 #ifdef VK_KHR_fragment_shading_rate 195 #endif 196 #ifdef VK_KHR_spirv_1_4 197 #endif 198 #ifdef VK_KHR_surface_protected_capabilities 199 #endif 200 #ifdef VK_KHR_separate_depth_stencil_layouts 201 #endif 202 #ifdef VK_KHR_present_wait 203 #endif 204 #ifdef VK_KHR_uniform_buffer_standard_layout 205 #endif 206 #ifdef VK_KHR_buffer_device_address 207 #endif 208 #ifdef VK_KHR_deferred_host_operations 209 #endif 210 #ifdef VK_KHR_pipeline_executable_properties 211 #endif 212 #ifdef VK_KHR_shader_integer_dot_product 213 #endif 214 #ifdef VK_KHR_pipeline_library 215 #endif 216 #ifdef VK_KHR_shader_non_semantic_info 217 #endif 218 #ifdef VK_KHR_present_id 219 #endif 220 #ifdef VK_KHR_video_encode_queue 221 #endif 222 #ifdef VK_KHR_synchronization2 223 #endif 224 #ifdef VK_KHR_shader_subgroup_uniform_control_flow 225 #endif 226 #ifdef VK_KHR_zero_initialize_workgroup_memory 227 #endif 228 #ifdef VK_KHR_workgroup_memory_explicit_layout 229 #endif 230 #ifdef VK_KHR_copy_commands2 231 #endif 232 #ifdef VK_KHR_format_feature_flags2 233 #endif 234 #ifdef VK_KHR_maintenance4 235 #endif 236 #ifdef VK_ANDROID_native_buffer 237 #endif 238 #ifdef VK_EXT_debug_report 239 #endif 240 #ifdef VK_NV_glsl_shader 241 #endif 242 #ifdef VK_EXT_depth_range_unrestricted 243 #endif 244 #ifdef VK_IMG_filter_cubic 245 #endif 246 #ifdef VK_AMD_rasterization_order 247 #endif 248 #ifdef VK_AMD_shader_trinary_minmax 249 #endif 250 #ifdef VK_AMD_shader_explicit_vertex_parameter 251 #endif 252 #ifdef VK_EXT_debug_marker 253 #endif 254 #ifdef VK_AMD_gcn_shader 255 #endif 256 #ifdef VK_NV_dedicated_allocation 257 #endif 258 #ifdef VK_EXT_transform_feedback 259 #endif 260 #ifdef VK_NVX_binary_import 261 #endif 262 #ifdef VK_NVX_image_view_handle 263 #endif 264 #ifdef VK_AMD_draw_indirect_count 265 #endif 266 #ifdef VK_AMD_negative_viewport_height 267 #endif 268 #ifdef VK_AMD_gpu_shader_half_float 269 #endif 270 #ifdef VK_AMD_shader_ballot 271 #endif 272 #ifdef VK_EXT_video_encode_h264 273 #endif 274 #ifdef VK_EXT_video_encode_h265 275 #endif 276 #ifdef VK_EXT_video_decode_h264 277 #endif 278 #ifdef VK_AMD_texture_gather_bias_lod 279 #endif 280 #ifdef VK_AMD_shader_info 281 #endif 282 #ifdef VK_AMD_shader_image_load_store_lod 283 #endif 284 #ifdef VK_GGP_stream_descriptor_surface 285 #endif 286 #ifdef VK_NV_corner_sampled_image 287 #endif 288 #ifdef VK_IMG_format_pvrtc 289 #endif 290 #ifdef VK_NV_external_memory_capabilities 291 #endif 292 #ifdef VK_NV_external_memory 293 #endif 294 #ifdef VK_NV_external_memory_win32 295 #endif 296 #ifdef VK_NV_win32_keyed_mutex 297 #endif 298 #ifdef VK_EXT_validation_flags 299 #endif 300 #ifdef VK_NN_vi_surface 301 #endif 302 #ifdef VK_EXT_shader_subgroup_ballot 303 #endif 304 #ifdef VK_EXT_shader_subgroup_vote 305 #endif 306 #ifdef VK_EXT_texture_compression_astc_hdr 307 #endif 308 #ifdef VK_EXT_astc_decode_mode 309 #endif 310 #ifdef VK_EXT_conditional_rendering 311 #endif 312 #ifdef VK_NV_clip_space_w_scaling 313 #endif 314 #ifdef VK_EXT_direct_mode_display 315 #endif 316 #ifdef VK_EXT_acquire_xlib_display 317 #endif 318 #ifdef VK_EXT_display_surface_counter 319 #endif 320 #ifdef VK_EXT_display_control 321 #endif 322 #ifdef VK_GOOGLE_display_timing 323 #endif 324 #ifdef VK_NV_sample_mask_override_coverage 325 #endif 326 #ifdef VK_NV_geometry_shader_passthrough 327 #endif 328 #ifdef VK_NV_viewport_array2 329 #endif 330 #ifdef VK_NVX_multiview_per_view_attributes 331 #endif 332 #ifdef VK_NV_viewport_swizzle 333 #endif 334 #ifdef VK_EXT_discard_rectangles 335 #endif 336 #ifdef VK_EXT_conservative_rasterization 337 #endif 338 #ifdef VK_EXT_depth_clip_enable 339 #endif 340 #ifdef VK_EXT_swapchain_colorspace 341 #endif 342 #ifdef VK_EXT_hdr_metadata 343 #endif 344 #ifdef VK_MVK_ios_surface 345 #endif 346 #ifdef VK_MVK_macos_surface 347 #endif 348 #ifdef VK_MVK_moltenvk 349 #endif 350 #ifdef VK_EXT_external_memory_dma_buf 351 #endif 352 #ifdef VK_EXT_queue_family_foreign 353 #endif 354 #ifdef VK_EXT_debug_utils 355 #endif 356 #ifdef VK_ANDROID_external_memory_android_hardware_buffer 357 #endif 358 #ifdef VK_EXT_sampler_filter_minmax 359 #endif 360 #ifdef VK_AMD_gpu_shader_int16 361 #endif 362 #ifdef VK_AMD_mixed_attachment_samples 363 #endif 364 #ifdef VK_AMD_shader_fragment_mask 365 #endif 366 #ifdef VK_EXT_inline_uniform_block 367 #endif 368 #ifdef VK_EXT_shader_stencil_export 369 #endif 370 #ifdef VK_EXT_sample_locations 371 #endif 372 #ifdef VK_EXT_blend_operation_advanced 373 #endif 374 #ifdef VK_NV_fragment_coverage_to_color 375 #endif 376 #ifdef VK_NV_framebuffer_mixed_samples 377 #endif 378 #ifdef VK_NV_fill_rectangle 379 #endif 380 #ifdef VK_NV_shader_sm_builtins 381 #endif 382 #ifdef VK_EXT_post_depth_coverage 383 #endif 384 #ifdef VK_EXT_image_drm_format_modifier 385 #endif 386 #ifdef VK_EXT_validation_cache 387 #endif 388 #ifdef VK_EXT_descriptor_indexing 389 #endif 390 #ifdef VK_EXT_shader_viewport_index_layer 391 #endif 392 #ifdef VK_NV_shading_rate_image 393 #endif 394 #ifdef VK_NV_ray_tracing 395 #endif 396 #ifdef VK_NV_representative_fragment_test 397 #endif 398 #ifdef VK_EXT_filter_cubic 399 #endif 400 #ifdef VK_QCOM_render_pass_shader_resolve 401 #endif 402 #ifdef VK_EXT_global_priority 403 #endif 404 #ifdef VK_EXT_external_memory_host 405 #endif 406 #ifdef VK_AMD_buffer_marker 407 #endif 408 #ifdef VK_AMD_pipeline_compiler_control 409 #endif 410 #ifdef VK_EXT_calibrated_timestamps 411 #endif 412 #ifdef VK_AMD_shader_core_properties 413 #endif 414 #ifdef VK_EXT_video_decode_h265 415 #endif 416 #ifdef VK_AMD_memory_overallocation_behavior 417 #endif 418 #ifdef VK_EXT_vertex_attribute_divisor 419 #endif 420 #ifdef VK_GGP_frame_token 421 #endif 422 #ifdef VK_EXT_pipeline_creation_feedback 423 #endif 424 #ifdef VK_NV_shader_subgroup_partitioned 425 #endif 426 #ifdef VK_NV_compute_shader_derivatives 427 #endif 428 #ifdef VK_NV_mesh_shader 429 #endif 430 #ifdef VK_NV_fragment_shader_barycentric 431 #endif 432 #ifdef VK_NV_shader_image_footprint 433 #endif 434 #ifdef VK_NV_scissor_exclusive 435 #endif 436 #ifdef VK_NV_device_diagnostic_checkpoints 437 #endif 438 #ifdef VK_INTEL_shader_integer_functions2 439 #endif 440 #ifdef VK_INTEL_performance_query 441 #endif 442 #ifdef VK_EXT_pci_bus_info 443 #endif 444 #ifdef VK_AMD_display_native_hdr 445 #endif 446 #ifdef VK_FUCHSIA_imagepipe_surface 447 #endif 448 #ifdef VK_EXT_metal_surface 449 #endif 450 #ifdef VK_EXT_fragment_density_map 451 #endif 452 #ifdef VK_EXT_scalar_block_layout 453 #endif 454 #ifdef VK_GOOGLE_hlsl_functionality1 455 #endif 456 #ifdef VK_GOOGLE_decorate_string 457 #endif 458 #ifdef VK_EXT_subgroup_size_control 459 #endif 460 #ifdef VK_AMD_shader_core_properties2 461 #endif 462 #ifdef VK_AMD_device_coherent_memory 463 #endif 464 #ifdef VK_EXT_shader_image_atomic_int64 465 #endif 466 #ifdef VK_EXT_memory_budget 467 #endif 468 #ifdef VK_EXT_memory_priority 469 #endif 470 #ifdef VK_NV_dedicated_allocation_image_aliasing 471 #endif 472 #ifdef VK_EXT_buffer_device_address 473 #endif 474 #ifdef VK_EXT_tooling_info 475 #endif 476 #ifdef VK_EXT_separate_stencil_usage 477 #endif 478 #ifdef VK_EXT_validation_features 479 #endif 480 #ifdef VK_NV_cooperative_matrix 481 #endif 482 #ifdef VK_NV_coverage_reduction_mode 483 #endif 484 #ifdef VK_EXT_fragment_shader_interlock 485 #endif 486 #ifdef VK_EXT_ycbcr_image_arrays 487 #endif 488 #ifdef VK_EXT_provoking_vertex 489 #endif 490 #ifdef VK_EXT_full_screen_exclusive 491 #endif 492 #ifdef VK_EXT_headless_surface 493 #endif 494 #ifdef VK_EXT_line_rasterization 495 #endif 496 #ifdef VK_EXT_shader_atomic_float 497 #endif 498 #ifdef VK_EXT_host_query_reset 499 #endif 500 #ifdef VK_EXT_index_type_uint8 501 #endif 502 #ifdef VK_EXT_extended_dynamic_state 503 #endif 504 #ifdef VK_EXT_shader_atomic_float2 505 #endif 506 #ifdef VK_EXT_shader_demote_to_helper_invocation 507 #endif 508 #ifdef VK_NV_device_generated_commands 509 #endif 510 #ifdef VK_NV_inherited_viewport_scissor 511 #endif 512 #ifdef VK_EXT_texel_buffer_alignment 513 #endif 514 #ifdef VK_QCOM_render_pass_transform 515 #endif 516 #ifdef VK_EXT_device_memory_report 517 #endif 518 #ifdef VK_EXT_acquire_drm_display 519 #endif 520 #ifdef VK_EXT_robustness2 521 #endif 522 #ifdef VK_EXT_custom_border_color 523 #endif 524 #ifdef VK_GOOGLE_user_type 525 #endif 526 #ifdef VK_EXT_private_data 527 #endif 528 #ifdef VK_EXT_pipeline_creation_cache_control 529 #endif 530 #ifdef VK_NV_device_diagnostics_config 531 #endif 532 #ifdef VK_QCOM_render_pass_store_ops 533 #endif 534 #ifdef VK_NV_fragment_shading_rate_enums 535 #endif 536 #ifdef VK_NV_ray_tracing_motion_blur 537 #endif 538 #ifdef VK_EXT_ycbcr_2plane_444_formats 539 #endif 540 #ifdef VK_EXT_fragment_density_map2 541 #endif 542 #ifdef VK_QCOM_rotated_copy_commands 543 #endif 544 #ifdef VK_EXT_image_robustness 545 #endif 546 #ifdef VK_EXT_4444_formats 547 #endif 548 #ifdef VK_EXT_rgba10x6_formats 549 #endif 550 #ifdef VK_NV_acquire_winrt_display 551 #endif 552 #ifdef VK_EXT_directfb_surface 553 #endif 554 #ifdef VK_VALVE_mutable_descriptor_type 555 #endif 556 #ifdef VK_EXT_vertex_input_dynamic_state 557 #endif 558 #ifdef VK_EXT_physical_device_drm 559 #endif 560 #ifdef VK_EXT_primitive_topology_list_restart 561 #endif 562 #ifdef VK_FUCHSIA_external_memory 563 #endif 564 #ifdef VK_FUCHSIA_external_semaphore 565 #endif 566 #ifdef VK_FUCHSIA_buffer_collection 567 #endif 568 #ifdef VK_HUAWEI_subpass_shading 569 #endif 570 #ifdef VK_HUAWEI_invocation_mask 571 #endif 572 #ifdef VK_NV_external_memory_rdma 573 #endif 574 #ifdef VK_EXT_extended_dynamic_state2 575 #endif 576 #ifdef VK_QNX_screen_surface 577 #endif 578 #ifdef VK_EXT_color_write_enable 579 #endif 580 #ifdef VK_GOOGLE_gfxstream 581 #endif 582 #ifdef VK_EXT_global_priority_query 583 #endif 584 #ifdef VK_EXT_multi_draw 585 #endif 586 #ifdef VK_EXT_load_store_op_none 587 #endif 588 #ifdef VK_EXT_border_color_swizzle 589 #endif 590 #ifdef VK_EXT_pageable_device_local_memory 591 #endif 592 #ifdef VK_KHR_acceleration_structure 593 #endif 594 #ifdef VK_KHR_ray_tracing_pipeline 595 #endif 596 #ifdef VK_KHR_ray_query 597 #endif 598 599 600