Commit graph

7 commits

Author SHA1 Message Date
Fufu Fang
b64498c021 Refactoring of extension_list
Unused methods removed. Specialised methods moved out
of the extension_list utility and closer to the point
of usage.

Signed-off-by: Fufu Fang <fufu.fang@arm.com>
Change-Id: I8e6d2786881b5306de21797cfdda46d0e678da8d
2021-07-06 10:37:40 +01:00
Normunds Rieksts
af2af23333 Ensure allocations happen through custom allocators
Document instance_private_data and device_private_data.

Add additional utility containers (util::unordered_set,
util::unordered_map) that ensure that the storage containers
we use allow the use of the Vulkan allocation callbacks.
Additionally, ensure that these allocations don't throw in
case host runs out of memory but rather return the appropriate
Vulkan error code.
Also keep a copy the allocators so they can be used in other layer
functionality to facilitate following the Vulkan specification around
memory allocation.

Add additional utility util::optional that currently makes it easier
to handle errors in the containers described above.

Fix some small issues with the vkCreateInstance/vkCreateDevice
handling and ensure that vkDestroyDevice is called in the layer
handler.

Change-Id: Ic9d8ece405c82e743a2c016cc3dabf984cf77fc1
Signed-off-by: Normunds Rieksts <normunds.rieksts@arm.com>
2021-06-28 11:51:33 +01:00
Fufu Fang
f514b0571d Creating logging mechanism for debugging
Introduce a logging mechanism in the layer for replacing the
old ones used in individual files.

Change-Id: I7559f8a99396eeb0b9da6e5ef58cc4b7bd5a82af
Signed-off-by: Fufu Fang <fufu.fang@arm.com>
2021-04-29 16:11:48 +01:00
Ben Davis
8236f8aaaa Remove to-do to check if FIFO is ok on Wayland
Although Mailbox mode is recommended for use on Wayland, FIFO is
required by the Vulkan spec and after investigation our implementation
seems to be compliant with the spec.

Change-Id: Ib3230e31c4dd516bc40dc50c9e920fb145506145
Signed-off-by: Ben Davis <ben.davis@arm.com>
2021-04-21 13:24:19 +01:00
Iason Paraskevopoulos
7c3a626118 Use zwp_linux_dmabuf_v1 interface to query supported formats
Adds functionality to query supported formats of a surface using the
Linux dmabuf extension (zwp_linux_dmabuf_v1).

Removes extern "C" before wayland headers includes.

Introduces Wayland object owners to remove the need of destroying
manually Wayland objects.

Change-Id: I60dc8562bac8746197fff8a0ae059d4edc58cd9a
Signed-off-by: Iason Paraskevopoulos <iason.paraskevopoulos@arm.com>
2021-03-30 16:54:21 +01:00
Normunds Rieksts
646a7a814b Fixes segfaults in the layer due to uninitialized pointer
The layer would segfault when running due to pointer being left
uninitialized when attempting to query device extensions

Change-Id: If72d822a36224034bf27bef5035015cdb0bffb07
Signed-off-by: Normunds Rieksts <normunds.rieksts@arm.com>
2021-03-04 13:05:18 +00:00
Iason Paraskevopoulos
8dc4d923ff Adds initial support for VK_KHR_wayland_surface.
Very basic Wayland support is implemented by importing
memory with VK_EXT_image_drm_format_modifiers.
The current implementation requires an external system
memory allocator. An API for this allocator is defined
in util/wsialloc/wsialloc.h and an implementation using
the ION memory allocator is included.

Outstanding issues:
 * This is an initial prototype for Wayland support and
   has many outstanding TODOs which need addressing to
   properly use the Wayland protocol.
 * Using ICD Exported memory instead of a system allocator
   is not implemented.

Wayland support is still experimental and outstanding issues
will be fixed in future commits.

Change-Id: I1b0d5991e15ff1cf25ebbab3392a631b021e8c17
Signed-off-by: Rosen Zhelev <rosen.zhelev@arm.com>
Signed-off-by: Iason Paraskevopoulos <iason.paraskevopoulos@arm.com>
2021-02-09 18:22:09 +00:00