summaryrefslogtreecommitdiff
path: root/vulkan/libvulkan/api_gen.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Run code_generation.py after an upstream merge of 'aosp/upstream-main'Trevor David Black2022-11-301-0/+1
| | | | | Test: Build Change-Id: I72f16b883f1a538454fa55ff50bde972db39da4e
* Vulkan: update the loader for vulkan-headers v1.3.203Trevor David Black2022-01-241-3/+3
| | | | | Bug: 191881132 Test: build Change-Id: I1c9ca806c810cda1dca8d2f7a39d888c4ebdd976
* Vulkan: update the loader for vulkan-headers v1.3.197Trevor David Black2022-01-241-0/+444
| | | | | | Bug: 191881132 Test: build Change-Id: Ie9e13d64a438d895f92e826e693477d508200054
* Vulkan: update the loader for vulkan-headers v1.2.183Trevor David Black2021-06-281-0/+4
| | | | | | Bug: 192288751 Test: build Change-Id: Icee2374114f14285c6e522c0ccfbf106390a8fa3
* Vulkan: update the loader for vulkan-headers v1.2.158Yiwei Zhang2020-10-221-1/+160
| | | | | | | | | | | 1. Fixed a false assumption on max api version in gen script 2. Updated thae gens via ./vulkan/scripts/code_generator.py 3. Added the new entry points to null_driver. 4. Updated the llndk symbol map Bug: 171402955 Test: build Change-Id: Ifa0b9dce7f4138ca0c72c1c17ca3af8eed538abf
* libvulkan: support vkGIPA self-queryJesse Hall2020-05-211-0/+1
| | | | | | | | | | | | | | | | | vkGetInstanceProcAddr(nullptr, ...) is valid and is effectively a globally dispatched function, so it's consistent to support querying vkGetInstanceProcAddr from itself without an instance. This is required in Vulkan 1.2 and is supported for all Vulkan versions by the loader on other platforms. To maximize app compatibility and minimize surprises, this makes it work on Android also, even for pre-1.2 versions where the result is undefined by the spec. Bug: 157173922 Test: dEQP-VK.api.version_check.entry_points with https://gerrit.khronos.org/#/c/5490/ applied and modified to check even on pre-1.2 implementations. Change-Id: I820dd1239df54a415b7ff5db47cf2c2b349f6155
* Generate Vulkan framework from Vulkan registry (Part 4)Adithya Srinivasan2019-07-121-210/+210
| | | | | | | | | | Instead of using the manually created vulkan.api file for generating the Vulkan driver framework, we generate it directly from the vulkan registry (vk.xml) Bug: 134711355 Test: Build and flash, dEQP tests Change-Id: Ie38d93c51ff16d2108cbe9a9a717a0bea24947df
* libvulkan: update code gen templatesYiwei Zhang2019-04-101-2/+1
| | | | | | | | | | Update code-generator.tmpl to match the result from doing `$ apic template ../api/vulkan.api code-generator.tmpl`. Update null_driver.tmpl to match the result from doing `$ apic template ../api/vulkan.api null_driver.tmpl`. Test: build Change-Id: Idcf6c148fd0d49bb1b6a31e657e82970f52923c0
* vulkan: Update headers to 1.1.90Jesse Hall2018-10-291-0/+1
| | | | | | | | | | | | Key changes since 1.1.87: * Added VK_KHR_vulkan_memory_model * Added VK_EXT_transform_feedback * Added VK_EXT_image_drm_format_modifier * Added VK_EXT_calibrated_timestamps * Added VK_EXT_pci_bus_info Test: build Change-Id: I66c41101ca97ca5e5a7bc0e2855fa07d0aab430d
* vulkan: Update headers to 1.1.76Jesse Hall2018-05-281-0/+4
| | | | | | | | | Key changes since 1.1.72: * Added VK_KHR_draw_indirect_count * Added VK_KHR_display_properties2 Test: build Change-Id: I658cb86096d2fecc3b24f6e1b2febb6ce88bdf5b
* libvulkan: Add VK_ANDROID_external_memory_android_hardware_bufferJesse Hall2018-04-041-0/+34
| | | | | Test: build Change-Id: Ice6ec464e91aaf42d56afaf9b11fb514076f64e9
* vulkan: update Vulkan headers to 1.1.68Jesse Hall2018-04-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Key changes from 1.1.61: * Introduced split headers: * vulkan_core.h provides all declarations that don't depend on platform-specific headers * vulkan_android.h provides Android-specific declarations * vulkan.h is retained for source compatibility, and includes both of the above; vulkan_android.h is conditional on VK_USE_PLATFORM_ANDROID_KHR * Re-defined symbols for extensions that were merged into Vk1.1 as typedefs/aliases for the new core symbols. * New extensions: * VK_EXT_conservative_rasterization * VK_EXT_debug_utils * VK_EXT_external_memory_dma_buf * VK_EXT_external_memory_host * VK_EXT_global_priority * VK_EXT_queue_family_foreign * VK_AMD_shader_image_load_store_lod * VK_AMD_shader_info Test: build Change-Id: I84cdb4c24eed27ead99047951f795ccafa0bfc9a
* Additional changes to Vulkan 1.1 API updatesIan Elliott2018-04-041-31/+31
| | | | | | | | | | | | | | | | This commit includes the following: - Make new/Vulkan 1.1 core commands be optional in codegen. Before this change, the loader crashed when starting with a 1.0 app, and using a 1.0 ICD. That's because the loader couldn't find "required" 1.1 entrypoints. This change makes those entrypoints "optional" with a new annotation in the api file. - Changes from internal reviews, including a fix for the algorithm of EnumeratePhysicalDeviceGroups. Test: Run with a 1.0 app with a 1.0 driver and make sure the loader works Change-Id: I55914b680a1601cb9f3f2cc0257091a0a34ae7f2
* Vulkan api update to 1.1Daniel Koch2018-04-041-2/+401
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Import Vulkan 1.1 header from khronos master@5b2d66c0e6906388385ed7adfd015d80ec0d846a with the following modifications: - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES 10006300 -> 1000063000 - remove VK_KHR_get_display_properties2 (which is not ratified) - device_group interactions from KHR_surface to KHR_swapchain (per MR 2409) Summary of changes since 1.0.61: * VK_KHR_surface -> v26 (subsumed interactions with VK_KHR_device_group) * VK_KHR_swapchain -> v69 (subsumed interactions with VK_KHR_device_group) * VK_EXT_debug_report -> v9 (no api changes) * VK_KHX_multiview -> VK_KHR_multiview * VK_KHX_device_group -> VK_KHR_device_group * VK_KHX_device_group_creation -> VK_KHR_device_group_creation * VK_KHR_push_descriptor -> v2 * Added VK_KHR_maintenance3 * Added 1.1 core enums, structs, and functions (kept KHR suffixed ones too) Implemented the following in libvulkan: * EnumerateInstanceVersion * GetDeviceGroupPresentCapabilitiesKHR (minimal support for 1 device) * GetDeviceGroupSurfacePresentModesKHR (minimal support for local present modes only) * GetPhysicalDevicePresentRectanglesKHR (assumes whole window) * AcquireNextImage2KHR (minimal thunk to AcquireNextImageKHR) * GetDeviceQueue2 * added support for VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR * support for 1.1 core device_groups functionality (no VK_KHR_device_group_creation) - EnumeratePhysicalDeviceGroups * added trampolines for 1.1 core entry points * disabled apiVersion >= 1.1 check Implemented in nulldrv (but largely untested beyond build/link) * EnumerateInstanceVersion * enough empty thunks for VK 1.1 core functions that it links Test: Build Android Change-Id: I247cd670543867bdf80877156d941cf3bfcf6303
* vulkan: Update Vulkan headers to 1.0.60Jesse Hall2017-09-211-0/+1
| | | | | | | | | | | | | | | | | Summary of changes since 1.0.54: * Added VK_KHR_relaxed_block_layout * Added VK_EXT_post_depth_coverage * Added VK_EXT_shader_viewport_index_layer * Added VK_EXT_sample_locations * Added VK_EXT_validation_cache * Added VK_EXT_shader_stencil_export * Added VK_AMD_mixed_attachment_samples * Added VK_AMD_shader_fragment_mask * VK_EXT_swapchain_colorspace added new enum VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT * Added const to some VK_EXT_debug_report function parameters Test: build Change-Id: Ibfbf84a50ab927e6e37cd4044d00b7375cd005e4
* vulkan: Update Vulkan headers to 1.0.54Jesse Hall2017-08-281-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Key changes since 1.0.53: * Updated several KHX extensions and promoted to KHR: * VK_KHR_external_memory_capabilities * VK_KHR_external_memory_win32 * VK_KHR_external_memory_fd * VK_KHR_external_semaphore_capabilities * VK_KHR_external_semaphore * VK_KHR_external_semaphore_win32 * VK_KHR_external_semaphore_fd * VK_KHR_win32_keyed_mutex * Added new extensions: * VK_KHR_external_fence_capabilities * VK_KHR_external_fence * VK_KHR_external_fence_win32 * VK_KHR_external_fence_fd * VK_KHR_storage_buffer_storage_class * VK_KHR_variable_pointers * VK_KHR_dedicated_allocation * VK_KHR_get_memory_requirements2 Test: build Change-Id: I790143b0d5160c02a016f1e67720edbf6bc45636
* vulkan: Update header for KHR_get_surface_capabilities2Chris Forbes2017-03-161-1/+3
| | | | | | | | .. and new struct added to latest version of KHR_shared_presentable_image. Test: build Change-Id: I653d0d8ad384c256e9a5c4cb79554360a5b2606e
* vulkan: update Vulkan headers to 1.0.43Jesse Hall2017-03-111-2/+0
| | | | | Test: de.saschawillems.vulkanGears Change-Id: Ib4fb6c279349c821384f73991105218e14dd6a79
* vulkan: update Vulkan headers to 1.0.42Jesse Hall2017-03-101-5/+11
| | | | | Test: mmm frameworks/native/vulkan Change-Id: I9c41b483fbf48a7404b54bfe405c40b58422ea74
* vulkan: Fix vulkan.api for Ian's changes & regenChris Forbes2017-01-141-10/+0
| | | | | | | | | | Various problems: uint32_t vs u32, a dropped }, function body with semantics that crash the generator, etc ... V2: don't export Ian's extensions from libvulkan. Change-Id: I1dceb4d4fc21ad5d38255c4979d9ef372ea2a28b Test: build
* resolve merge conflicts of a2c2d11f9 to masterMark Salyzyn2017-01-121-1/+3
|\ | | | | | | | | | | | | Test: compile Bug: 26552300 Bug: 31289077 Change-Id: I84d0ffa430df3beca0dcc6ed205ce220d7be1f87
| * Replace cutils/log.h and rationalize log/log.h and android/log.hMark Salyzyn2017-01-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | - cutils/log.h treat as deprecated and lead by example - android/log.h to be used instead of log/log.h if possible - add system includes that are assumed as side effects - define LOG_TAG first Test: compile Bug: 31289077 Bug: 30465923 Change-Id: I8d99b24c333578c9b5aa9f2a01324bd0bba268dd
* | Stubbed implementation of VK_GOOGLE_display_timing extension.Ian Elliott2017-01-091-0/+10
| | | | | | | | | | | | | | | | | | | | This provides the header changes and most of the "boilerplate" changes to add the VK_GOOGLE_display_timing extension to Vulkan. Future changes will modify and integrate with the Surface, FrameEvents, and SurfaceFlinger code. Test: Manually tested that existing apps won't tickle the new-extension paths. Change-Id: Iec46b1cab4b2561702ebac9a4ae7587584793192
* | vulkan: Add header support for gpdp2Chris Forbes2017-01-041-0/+7
| | | | | | | | | | Change-Id: I60881a66dba693cf8d16fe0d3a19e517b6bdcf24 Test: build, run cube demo
* | vulkan: Update vulkan headers to 1.0.38Chris Forbes2017-01-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | Catches up with the current upstream header. Preserves the local changes for incremental present. V2: Fix indentation issues V3: Add missing struct and defines for EXT_validation_flags Change-Id: I6e4f44e0eba8de00b010a6918ec2ba92614cc6bc Test: Ensured cube demo still works
* | resolve merge conflicts of 525a5f2 to masterMark Salyzyn2016-12-281-1/+3
|\| | | | | | | | | Test: build Change-Id: Id1c6d3d9dd158fb086b0d8ab74f7838ef0a51af1
| * Replace cutils/log.h and rationalize log/log.h and android/log.hMark Salyzyn2016-12-221-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | - cutils/log.h treat as deprecated and lead by example - android/log.h to be used instead of log/log.h if required - add system includes that are assumed as side effects of log.h - modules that use SLOG should use SLOG for all logging (installd) - define LOG_TAG first - remove logging infrastructure if not used Test: build Bug: 31289077 Change-Id: Iea147a0104c7ab7f12451304131d6500f42141e7
* | vulkan: Add support for non-fatal missing functions in vulkan loaderChris Forbes2016-12-231-148/+148
| | | | | | | | | | | | | | | | | | When a function is added by a later revision of an extension, and the loader expects to deal with drivers written against revisions before and after that point, we need to not fail hard on missing that function. Change-Id: Iac6383f6a424afe6e7f83acc86b674669a118c51 Test: Run Vulkan-LoaderAndValidationLayers Cube demo
* | vulkan: Update Vulkan headers to 1.0.22Jesse Hall2016-07-261-3/+3
|/ | | | | | | | | | | Meaningful changes to platform code: * VKAPI_ATTR is now defined properly when building for 32-bit ARMv8a. * The pData parameter to vkCmdUpdateBuffer changed from uint32_t* to void*. Alignment is still required to be four bytes (by spec), and the size parameter was always supposed to be bytes, not words. Bug: 29460769 Change-Id: I224c53cb08427bea1b0e8ac74802c2f1eed10496
* vulkan: remove EnumerateDeviceLayerProperties internallyChia-I Wu2016-06-021-1/+0
| | | | | | | We never use it. Since it is also deprecated, we will never need it. Bug: 27910383 Change-Id: If4e556bb69890153be2987b165482e43ab06a890
* vulkan: do not use exported functions internallyChia-I Wu2016-05-231-304/+1009
| | | | | | | | | | | | | | | | | | | Our vkGet*ProcAddr uses the exported functions. They will break when any of the exported functions are overridden (e.g., through LD_PRELOAD). Unexport and move all exported functions to vulkan::api namespace. Re-export them by having vkFoo as a wrapper to vulkan::api::Foo. Another option is to re-export vulkan::api::Foo by having vkFoo as an alias using __attribute__((alias)). That results in smaller binaries. But we will not be able to catch mismatches between vulkan.h and vulkan.api. To avoid future breakage, define VK_NO_PROTOTYPES for all files except api_gen.cpp. Bug: 28886971 Change-Id: I08fde7ebb247f8c7e040ccf812b40b02094d3c7f
* vulkan: use Logger in the generated codeChia-I Wu2016-05-061-28/+33
| | | | | | | Except for INIT_PROC, where ALOGE is still used for layer/HAL bugs. Bug: 28120066 Change-Id: Icd9ce99b6bfb77816b11c05f6c8b197a6782b7cd
* vulkan: do not query non-enabled WSI functionsChia-I Wu2016-04-141-7/+77
| | | | | | | | | Initialize dispatch table entries for non-enabled WSI functions to stubs. We do not want to initialize them to NULL because they may still be invoked through the exported WSI entrypoints. Bug: 25850852 Change-Id: I25b715700990ad7432740f031764d70396024d32
* vulkan: fix vkGetDeviceProcAddr for intercepted commandsChia-I Wu2016-04-131-1/+4
| | | | | | | This allows vulkan::api::DestroyDevice to properly unreference layers. Bug: 28077754 Change-Id: I194925d29dee3489b63f4a44669c791d378afa39
* vulkan: rewrite top of loaderChia-I Wu2016-03-301-0/+1170
The top is responsible for layer discovery and chaining, and the bottom is like a regular layer that is always enabled and is inserted just before the driver. Make the separation clear by rewriting the top and stripping the layer managment code from loader.cpp. Change-Id: I64e525e27bd4c297bccd94a1eb9b88e28088e85d