vulkan-wsi-layer/wsi/display
Maged Elnaggar 4a6f61a72b This commit merges several related changes to make the layer
fully spec-compliant and avoid leaking unsupported symbols.

Extension enablement

* Only enable extensions promoted to core in Vulkan 1.1 when 
  the application’s API version is < 1.1.
* Filter the list passed to vkGet{Instance,Device}ProcAddr so
  that only _application_-enabled extensions affect symbol lookup. Internally-added
  extensions are ignored during GetProcAddr resolution.

Entrypoint exposure fixes

* getProcAddr now only returns pointers for entrypoints when _all_ of 
  their required extensions (or core version) are enabled:
  * vkGetPhysicalDevicePresentRectanglesKHR
  * vkAcquireNextImage2KHR
  * vkGetDeviceGroupSurfacePresentModesKHR
  * vkBindImageMemory2 / vkBindImageMemory2KHR
  * vkGetPhysicalDeviceFeatures2KHR
* Removed all OR-conditions that previously exposed these functions prematurely,
  replacing them with clear AND-checks per the spec.

Always-exposed device-level entrypoints

* Introduce INSTANCE_ENTRYPOINTS_LIST_EXPANSION for entrypoints that:
  * Come from device-level extensions,
  * Are looked up via instance APIs,
  * Are _not_ in core Vulkan.
* Assign them an empty extension string so they’re always exposed, regardless
  of which instance extensions the application requests.

Hiding non-intercepted functions

* Any entrypoint the layer lists internally but does _not_ intercept 
  is now hidden from applications, preventing calls into stubs.

These combined changes ensure the layer:

* advertises only the extensions it needs,
* obeys all cross-extension dependencies, and
* never leaks unsupported symbols via GetInstanceProcAddr/GetDeviceProcAddr.

Signed-off-by: Maged Elnaggar maged.elnaggar@arm.com 
Change-Id: I7a5e5cb210e017f1aed76b187db1f40537010914
2025-06-27 15:21:58 +00:00
..
drm_display.cpp Add external memory extension 2025-04-25 15:28:39 +01:00
drm_display.hpp Add external memory extension 2025-04-25 15:28:39 +01:00
present_wait_display.cpp Enables the present wait extension by default - experimental flag is no longer needed. 2025-06-06 16:41:12 +00:00
present_wait_display.hpp Enables the present wait extension by default - experimental flag is no longer needed. 2025-06-06 16:41:12 +00:00
surface.cpp Fix the VK_KHR_DISPLAY implementation within the WSI Layer 2024-11-14 16:48:34 +00:00
surface.hpp Refactor framebuffer format support 2024-08-12 11:44:22 +00:00
surface_properties.cpp This commit merges several related changes to make the layer 2025-06-27 15:21:58 +00:00
surface_properties.hpp This commit merges several related changes to make the layer 2025-06-27 15:21:58 +00:00
swapchain.cpp Enables the present wait extension by default - experimental flag is no longer needed. 2025-06-06 16:41:12 +00:00
swapchain.hpp Add external memory extension 2025-04-25 15:28:39 +01:00