Commit graph

9 commits

Author SHA1 Message Date
Ginu Jacob
02ae04d08f Introduce an extensions abstraction in the layer
In this change, an abstraction layer is added to the swapchain
extensions. The extensions present_timing, present_id,
image_compression_control, frame_boundary, and swapchain_maintenance1
are moved to the new extensions abstraction framework.

Additionally, the compression control extension has been formalized in
the layer as it is part of Vulkan spec so compression control guards
have been removed.

Change-Id: Ib28739ca35dfbf5df987241a9010619279f3e1bb
Signed-off-by: Ginu Jacob <ginu.jacob@arm.com>
Signed-off-by: Normunds Rieksts <normunds.rieksts@arm.com>
2025-01-31 17:31:32 +00:00
Ginu Jacob
a8f7bb40e1 Fix the error caused in release builds due to unused variables
The variables 'physicalDevice' and 'planeIndex' are unused in release
builds in the following APIs causing build error:
GetDisplayPlaneCapabilitiesKHR
GetDisplayPlaneSupportedDisplaysKHR
GetPhysicalDeviceDisplayPlanePropertiesKHR
GetPhysicalDeviceDisplayPropertiesKHR

This issue is fixed in this change.

Signed-off-by: Ginu Jacob <ginu.jacob@arm.com>
Change-Id: Id34f5162204249b5c1604a1eb4ba198b60393bee
2025-01-30 14:11:04 +00:00
Ginu Jacob
3675833d19 Fix the VK_KHR_DISPLAY implementation within the WSI Layer
Surface extents are initialized in this change. This fixes the issues
with execution of the wsi layer display backend. Additionally,
functional code snippets are moved out of assert calls in the file
wsi/display/swapchain.cpp to avoid them being stripped out by ndebug
compilation. This change also fixes the unused variable error in ndebug
compilation.

Signed-off-by: Ginu Jacob <ginu.jacob@arm.com>
Change-Id: I4ad33ef52dbb81faaf580ce7b89ce74ffe96e002
2024-11-14 16:48:34 +00:00
Fufu Fang
06d1972168 Fix VK_KHR_display compilation 2024-10-16 08:57:32 +00:00
ginujacob
0cee10aa6f Advertise VK_EXT_present_timing features.
Enabling the VK_EXT_present_timing features
VkPhysicalDevicePresentTimingFeaturesEXT and
VkPresentTimingSurfaceCapabilitiesEXT.

The feature values are updated based on the backend.

Signed-off-by: Ginu Jacob <ginu.jacob@arm.com>
Change-Id: Ie322f58118108c656530128b18ec905bd6815c63
2024-09-17 11:31:46 +01:00
Dennis Wildmark
c48d7382ef Refactor framebuffer format support
Add support for format modifiers in framebuffers using
drmModeAddFB2WithModifiers.
Add compilation flag to force VK_KHR_display to not support format
modifiers for framebuffers.

Change-Id: Ie8eb2e96e543a15ab3534a7e73425f277a4b7d58
Signed-off-by: Dennis Wildmark <dennis.wildmark@arm.com>
Signed-off-by: Fufu Fang <fufu.fang@arm.com>
2024-08-12 11:44:22 +00:00
Dennis Wildmark
e62cc2d42f VK_KHR_display swapchain implementation
Implementation of VK_KHR_display swapchain class. VK_KHR_display is
another WSI backend that provides surfaces to render directly to a
display. The swapchain class is responsible for creating and managing a
swapchain based on the specific type of surface provided by
VK_KHR_display.

Change-Id: I9b103c20c3444b1ca75f3df7edf6b66fc87a0992
Signed-off-by: Dennis Wildmark <dennis.wildmark@arm.com>
Signed-off-by: Fufu Fang <fufu.fang@arm.com>
2024-08-12 11:44:22 +00:00
Dennis Wildmark
09a341b88b Make drm_display singleton
Make the drm_display class a singleton and automatically initialize the
display. Add environment variable for configuring display device.

Change-Id: I869fbf7414bc4a2270b3583577050b7cd8c5b184
Signed-off-by: Dennis Wildmark <dennis.wildmark@arm.com>
Signed-off-by: Fufu Fang <fufu.fang@arm.com>
2024-08-12 11:44:22 +00:00
Dennis Wildmark
8da77f2b8b VK_KHR_display surface_properties implementation
Implementation of the surface_properties interface for VK_KHR_display.

Change-Id: Idd3b53bec0d0a829478d51b4263db767c872d0e5
Signed-off-by: Dennis Wildmark <dennis.wildmark@arm.com>
Signed-off-by: Fufu Fang <fufu.fang@arm.com>
2024-08-12 11:44:22 +00:00