summaryrefslogtreecommitdiff
path: root/vulkan/libvulkan
AgeCommit message (Collapse)Author
2025-04-02Downgrade ICD's view of VkApplicationInfo::apiVersion for 1.3 ICD Chris Forbes
Certain 1.3 ICDs in the wild seem to misbehave on seeing VkApplicationInfo::apiVersion = 1.4. Bug: b/403118763 Flag: NONE bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a9972152370858f05df2b79daf90fd2930ff6001) Merged-In: Ic6ec11ecca68add499db864af4a6e96ef8076aa4 Change-Id: Ic6ec11ecca68add499db864af4a6e96ef8076aa4
2025-03-18Merge "libvulkan: refactor for _FORTIFY_SOURCE=3 support." into main am: ↵ Elliott Hughes
7827597532 am: 6c65610f9f Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3542879 Change-Id: Ic14f61a8baa4f8b9f3d4c81eb38764957dd35817 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-13libvulkan: refactor for _FORTIFY_SOURCE=3 support. Elliott Hughes
You can't use malloc_usable_size() when built with _FORTIFY_SOURCE=3, so pull out the allocator into a file that can be built _FORTIFY_SOURCE=2 while still getting the benefits for the rest of the code. Bug: http://b/291762537 Change-Id: Ic3a71bd8eadeb2da167edc0ba28becba2f95f82e
2025-02-21Extract GPDIFP2 getProducerUsage path to seperate function Tom Murphy
Extracting the GPDIFP2 logic to its own function makes it easier to exit early from the GPDIFP2 path when we need to fall back to the GetSwapchainGrallocUsage*ANDROID path. This change also fixes an issue where we would exit getProducerUsage early instead of falling back to the gralloc paths if GPDIFP2 would return an error when called with an unsupported format. Bug: 379230826 Test: atest libvulkan_test Flag: EXEMPT bugfix Change-Id: I42f1fe31e5e4a01c472a12854a1f4e989d2786dc
2024-12-09Merge "Revert "Keep _FORTIFY_SOURCE=2 for libvulkan when enabling _FORT..."" ↵ Liana Kazanova
into main am: 9639da022b am: 690a9cdc2f Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3398713 Change-Id: Id8f569217d727dd768c3ba708f42f2ce6819d76f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-12-09Merge "Revert "Keep _FORTIFY_SOURCE=2 for libvulkan when enabling _FORT..."" ↵ Liana Kazanova
into main am: 9639da022b Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3398713 Change-Id: Iaefec7f0b2806abe155562a2b5767a8bce24c575 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-12-09Revert "Keep _FORTIFY_SOURCE=2 for libvulkan when enabling _FORT..." Liana Kazanova
Revert submission 3391212-_FORTIFY_SOURCE=3 Reason for revert: DroidMonitor: Potential culprit for http://b/383164857 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Reverted changes: /q/submissionid:3391212-_FORTIFY_SOURCE%3D3 Change-Id: I3682429d089d1c26b5ed74d7764ec4a3a447829b
2024-12-09Merge "Keep _FORTIFY_SOURCE=2 for libvulkan when enabling _FORTIFY_SOURCE=3 ↵ Treehugger Robot
globally" into main am: 9f3b420338 am: fd24a0a13b Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3391212 Change-Id: I04d01f0d5279993af7b591109585f38c9ccbffe4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-12-09Merge "Keep _FORTIFY_SOURCE=2 for libvulkan when enabling _FORTIFY_SOURCE=3 ↵ Treehugger Robot
globally" into main am: 9f3b420338 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3391212 Change-Id: I86d97442b8b9d0d23e973bbf9763451699fd96d6 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-12-09Keep _FORTIFY_SOURCE=2 for libvulkan when enabling _FORTIFY_SOURCE=3 globally Zijun
malloc_usable_size() is not allowed when _FORTIFY_SOURCE=3, so we keep it 2 as a workaround. Bug: b/291762537 Test: mm and presubmit Change-Id: I2eb79bb9673aacfd36b0835edbf821059319189f
2024-11-25Update libvulkan linker map for 1.4 Chris Forbes
Bug: b/370568136 Flag: NONE infeasible Change-Id: Ib8e22978d100ce3007992ca1c107c763821067c6
2024-11-25Add support for vulkan api level 1.4 in loader Chris Forbes
Bug: b/370568136 Flag: com.android.graphics.libvulkan.flags.vulkan_1_4_instance_api Change-Id: Ibf168e24f5be16cdf87b683322d291336b11244f
2024-11-25Regenerate vulkan-loader for 1.4 Chris Forbes
Manual changes to scripts/generator_common.py, then generated by running scripts/code_generator.py Bug: b/370568136 Flag: NONE infeasible Change-Id: I91937577496488b18e6972224a79de31a863c327
2024-11-13Add new flag for exposing 1.4 instance API Chris Forbes
Bug: b/370568136 Flag: com.android.graphics.libvulkan.flags.vulkan_1_4_instance_api Change-Id: Ib259225055c536669d134479634ad5a9289c755d
2024-09-04Merge "Remove NDK exports" into main am: 1af8a3eef4 am: 08aa6b5cf5 Steven Moreland
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3248585 Change-Id: Id5aaea2cdd935d56909e8c151e348180a4c9efc2 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-04Merge "Remove NDK exports" into main am: 1af8a3eef4 Steven Moreland
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3248585 Change-Id: Iec3bba30ebcd7f603077c8b6369e2c0522206e01 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-04Merge "Remove NDK exports" into main Steven Moreland
2024-09-03Remove NDK exports Steven Moreland
Base headers should come from sysroot. Bug: N/A Test: build Change-Id: I5c085257b3aabc09d9b65a0384c0478a9f19c30e
2024-09-03Merge "Fix GetPhysicalDeviceSurfaceFormats2KHR for compression control ↵ Tom Murphy
struct handling" into main am: 351a8df928 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3242198 Change-Id: I0a5ae4151c9efd4823898bf7ffac3e7a2e357828 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-02Fix GetPhysicalDeviceSurfaceFormats2KHR for compression control struct handling Tom Murphy
As per the spec, vkGetPhysicalDeviceImageFormatProperties2 may return VK_ERROR_FORMAT_NOT_SUPPORTED when an invalid combination of parameters appears in VkPhysicalDeviceImageFormatInfo2 pImageFormatInfo argument which is not handled by the loader. i.e.. loader doesn't loop through all surface formats Fix this by correctly handling vkGetPhysicalDeviceImageFormatProperties2 return value Test: Working separately on testing strategy for this: 357903074 Bug: 357903074 Flag: EXEMPT bugfix (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:a920d2d6dcc97331a8fffe3a2584eb30b890005e) (cherry picked from https://android-review.googlesource.com/q/commit:e5b150b8cc340c23fa6dd3e7e7b648c6493836df) Merged-In: Id0712387e3249ac6118990441a4bb19102cd4a84 Change-Id: Id0712387e3249ac6118990441a4bb19102cd4a84
2024-08-30Merge "Implement the VK_KHR_swapchain_mutable_format device extension in the ↵ Tom Murphy
vulkan loader" into main
2024-08-27Fix GetPhysicalDeviceSurfaceFormats2KHR for compression control struct handling Tom Murphy
As per the spec, vkGetPhysicalDeviceImageFormatProperties2 may return VK_ERROR_FORMAT_NOT_SUPPORTED when an invalid combination of parameters appears in VkPhysicalDeviceImageFormatInfo2 pImageFormatInfo argument which is not handled by the loader. i.e.. loader doesn't loop through all surface formats Fix this by correctly handling vkGetPhysicalDeviceImageFormatProperties2 return value Test: Working separately on testing strategy for this: 361626599 Bug: 357903074 Flag: EXEMPT bugfix Change-Id: Id0712387e3249ac6118990441a4bb19102cd4a84
2024-08-15Implement the VK_KHR_swapchain_mutable_format device extension in the vulkan ↵ Tom Murphy
loader Add an implementation for the VK_KHR_swapchain_mutable_format extension. Test: Stepped through changes in debugger Test: Ran sample app with VVL which used the extension Test: Ran dEQP-VK.image.swapchain_mutable.android.* dEQP tests Flag: com.android.graphics.libvulkan.flags.swapchain_mutable_format_ext Bug: 341978292 Change-Id: Ib0e5b9f750cd5a94ab65419542898db207716fcc
2024-08-06Merge changes I1e6c3c80,I4310618c into main am: 5a2065886b am: 3150c9697c Chris Forbes
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3205054 Change-Id: I4c98c1a8621b80b0f68617bc8e77e7605888e139 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-06Merge changes I1e6c3c80,I4310618c into main am: 5a2065886b Chris Forbes
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3205054 Change-Id: Ib75609eb56bba49998afab66b73bfbd076812429 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-08-01Fix updatable driver loading issue with Vulkan. Rob VanReenen
When unloading Vulkan driver, check if close() function is non-NULL before calling it. Bug: 349287141 Change-Id: I1e6c3c80e57dceecd41888541044807e1dab45af
2024-06-25Merge "Tidy up dispatch to GPDIFP2 in swapchain" into main Tom Murphy
2024-06-25Unbitrot libvulkan's code generator Chris Forbes
The generator py scripts were broken when VKSC was released. Fix them and submit the updated autogenerated code. Bug: b/346650750 Flag: EXEMPT bugfix Test: ran the script after fixes Change-Id: I44352b052e5d018b91b327f1c8b3763146ed8fbe
2024-06-17Tidy up dispatch to GPDIFP2 in swapchain Chris Forbes
Bug: b/346650750 Test: n/a Change-Id: I22eba5cffcd86b671b69097ba087b795ad1732b2
2024-06-05Dispatch properly to either GPDIFP2 or KHR variant Chris Forbes
The KHR function pointer may not be populated. We can accept either. Bug: b/341758459 Change-Id: Idc7f2db78dff35d6120dab35bb5f25a7fa81ccb4
2024-05-15Filter hook entry points by ICD entry point presence Jörg Wagner
For device proc hooks which intercept core functions check whether there exists an exposed core function from the ICD, and skip exposure if none is found. This avoids having to replicate exposure filtering based on requested Vulkan API versions inside the Loader - rely on the ICD to handle it correctly. Bug: 309752984 Change-Id: Ibeb13dae8eccaa859072ee5233013d99d5b26ef0
2024-05-07Add engine name to GpuStatsAppInfo Tom Murphy
The engine name from VkApplicationInfo is useful for collection metrics on Vulkan usage. Add it to the collected metrics in GpuStatsAppInfo. Bug: 330118952 Test: adb shell dumpsys gpu Test: atest GpuStatsTest Change-Id: If4096b8a96ed77ddb1d2fd9f48c2b8825b3d0280
2024-05-01Revert "EGL/ANGLE/Vulkan: respect EGL resolved RGBX format" Android Culprit Assistant
This revert was created by Android Culprit Assistant. The culprit was identified in the following culprit search session (http://go/aca-get/96953fd0-49c9-4874-bc2a-cdc3b220bf45). Change-Id: Icb89f5d5b9c59e0d611191871db8d8c40106ee86
2024-04-20EGL/ANGLE/Vulkan: respect EGL resolved RGBX format Yiwei Zhang
Platform EGL is able to resolve rgb8 config to rgbx hal format but it currently skips setting the resolved format to the surface if ANGLE is detected in use. Meanwhile, Vulkan surface and swapchain lacks info to properly resolve RGBA8 vk format to rgbx hal format like platform EGL. So we'd wire through such info from the EGL side to the surface so that EGL->ANGLE->Vulkan can end up picking up the same format. Summary: 1. allow EGL to resolve and set surface format even with angle 2. vk surface to query default format for OPAQUE advertisement 3. angle already picks up OPAQUE only without sized alpha 4. (optional) besides format, also allows to set resolved dataspace Bug: b/335925862, b/328125698 Test: encoder cts is passing, and no regression to ImageReader use cases Change-Id: I4e977a278fc0659b6c5e91cad7b5755c9da3a28c
2024-03-15Revert "swapchain: support RGBX backed opaque swapchain for offs..." George Verhaegen
Revert submission 26542013 Reason for revert: DroidMonitor: Potential culprit for Bug b/329753804 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Reverted changes: /q/submissionid:26542013 Change-Id: I6ec4eba91fc62cd8e8ab631722fd2a9ec129aa30
2024-03-12swapchain: support RGBX backed opaque swapchain for offscreen Yiwei Zhang
When a swapchain is connected to SurfaceFlinger, it makes sense to only advertise INHERIT bit on Android. However, for offscreen scenarios, e.g. a video encoder surface, that currently shuts the door for preferring RGBX over RGBA for the requested VK_FORMAT_R8G8B8A8_* format, ending up with suboptimal performance when using Vulkan swapchain. This change advertises the OPAQUE bit for offscreen scenarios, and adds the code path to prefer RGBX as the backing storage when OPAQUE is used. This bridges a gap against EGL where GL_RGB8 is used for such encoder surface, which internally picks RGBX. This casts no regressions for anything currently going to the display via KHR_swapchain. Bug: b/328125698, b/328122401 Test: below tests pass with ANGLE on Zork device (AMD chromebook) 1. android.media.encoder.cts.SurfaceEncodeTimestampTest 2. android.media.codec.cts.EncodeDecodeTest - testEncodeDecodeVideoFromSurfaceToPersistentSurface - testEncodeDecodeVideoFromSurfaceToPersistentSurfaceNdk Change-Id: I82a7ac741dc70a3e3b5fdd4f7499c937c4dce6d8
2024-03-12swapchain: pass VkFormat to GetNativeDataspace directly Yiwei Zhang
No need for the extra convert just to workaround bt2020 linear ext mapping. This change also refactors to clean up the format population. Bug: b/328125698 Test: compile Change-Id: Iab875a90be1b240415dc1630dad0790d74c13871
2024-02-09Add more supported vulkan color space Yuxin Hu
This change lists the vulkan color space that is said to be supported by VK_EXT_swapchain_colorspace extension, and enable them on the VkFormat that is supported by AHardwareBuffer. VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT and VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT are enabled on VK_FORMAT_R16G16B16A16_SFLOAT VkFormat surfaces only as the transfer function is only meaningful for FP16 pixel formats. VK_COLOR_SPACE_PASS_THROUGH_EXT is the only VK_EXT_swapchain_colorspace color space that is enabled on VK_FORMAT_R8_UNORM VkFormat. Color space doesn't apply to single-channel pixel format, and we should use pass through to keep the original pixel color value. VK_COLOR_SPACE_DOLBYVISION_EXT is not supported on Android platform, and it is excluded from the VK_EXT_swapchain_colorspace supported color space lists. Bug: b/322044839 Test: atest --verbose CtsViewTestCases:android.view.cts.TextureViewTest Change-Id: I6ee3cbf9c6c61fc353ec9f3e515884645382c665
2024-02-08Add VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT to FP16 surface Yuxin Hu
VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT is not enabled on any VkFormat. This means ANGLE on Vulkan is not exposing EGL_EXT_gl_colorspace_display_p3_linear EGL colorspace, because ANGLE's query of VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT vulkan color space returns nothing. This causes TextureViewTest that relies on EGL_EXT_gl_colorspace_display_p3_linear color space support to fail on ANGLE. To fix it, enable the VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT color space on VK_FORMAT_R16G16B16A16_SFLOAT VkFormat first. Test: atest --verbose CtsViewTestCases:android.view.cts.TextureViewTest Bug: b/322044839 Change-Id: I95b6b425aef4b7870797e406dce59f596f1f50c3
2024-02-06Add VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT to FP16 surface Yuxin Hu
Test: atest --verbose CtsViewTestCases:android.view.cts.TextureViewTest#testGetBitmap_FP16_PassthroughP3 Bug: b/322044839 Change-Id: Ic1dfec7ea8d128881077a3c00f7454230f15f3a3
2024-01-17Check for USAGE_FRONT_BUFFER after GPDIFP2 Trevor David Black
Bug: 288286529 Test: atest CtsDeqpTestCases -- --module-arg 'CtsDeqpTestCases:include-filter:dEQP-VK.wsi.*' Change-Id: I2ee886b18b194016e638f44907aa8e2fdcb8fe6e
2024-01-09Vulkan: Don't close HAL inside of an assert Ian Elliott
Bug: 282237072 Test: Compile with asserts disabled Change-Id: Ideed507af4f6422db32f85c5ef70d8c62d21d5c9
2023-12-26bound the swapchain num_image by the min and max image count Trevor David Black
Bug: 313353712 Bug: 316517849 Bug: 296019634 Test: atest CtsDeqpTestCases -- --module-arg 'CtsDeqpTestCases:include-filter:dEQP-VK.wsi.*' Change-Id: I0726b39aacaba87a531af9bef23c8a214bc38425
2023-12-12Add AHardwareBuffer* to VkNativeBufferANDROID Trevor David Black
Bug: 275906506 Test: atest CtsDeqpTestCases -- --module-arg 'CtsDeqpTestCases:include-filter:dEQP-VK.wsi.*' Change-Id: I9c7d28fe3498f77001d8b6512462fa7787305abf
2023-11-17Merge "Pass in VkImageCompressionControlEXT for swapchain usage query" into main Vamsidhar reddy Gaddam
2023-11-16Merge "Load vulkan driver from an apex when ro.vulkan.apex is set" into main ↵ Jooyung Han
am: a4f2d92c23 am: 1a18312ba9 am: 3093fae8e8 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2818498 Change-Id: I61f92db0772295c0355e3ece91d8964b356aa1ae Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-11-16Merge "Load vulkan driver from an apex when ro.vulkan.apex is set" into main ↵ Jooyung Han
am: a4f2d92c23 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2818498 Change-Id: I84f10f2dcbdbdbac513e6c387cb9160dc96a4eca Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-11-15Load vulkan driver from an apex when ro.vulkan.apex is set Jooyung Han
When ro.vulkan.apex is set, loader tries to load driver from the apex. This enables vulkan driver to be packaged in APEX. Bug: 205618237 Bug: 306294280 Test: cvd start -gpu_mode=guest_swiftshader # load vulkan.pastel from apex. Change-Id: I63feb6d55fb9918b95d3cff0d9ffa0d004e94645
2023-11-14Pass in VkImageCompressionControlEXT for swapchain usage query Vamsidhar reddy Gaddam
When using vkGetPhysicalDeviceImageFormatProperties2KHR to query usage flags, pass the application provided VkImageCompressionControlEXT struct to get the correct usage flags. Bug: 307696078 Change-Id: Idcad0589a1e05bd8e7574fbb1bdd1346aad325f9
2023-11-13Merge "Vulkan: log dlerror on error" into main am: 67d71c0552 am: 02ba47d307 ↵ Jooyung Han
am: 84e6863205 Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2825857 Change-Id: I341887a0ee410693bf7f6e0d02b2a5b8e91a14b8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>